一、在/data/testdir里创建的新文件自动属于g1组,组g2的成员如:alice能对这些新文件有读写权限,组g3的成员如:tom只能对新文件有读权限,其它用户(不属于g1,g2,g3)不能访问这个文件夹。
首先创建三个组g1,g2,g3,题目要求在/data/testdir目录里创建的文件自动属于g1组那么首先要将这个目录的属组改为g1,然后通过更改SGID的方式来实现在目录里创建文件自动属于g1组,要求g2的组对新文件进行读写权限,在目录里边能写必须要配合x执行权限才能实现写(创建文件,删除文件,更改文件内容),g2组里的成员未必都是这个目录属组的成员,所以这时要用到访问控制列表来设置g2组的成员对目录里的文件有读写权限,最后g3组的成员也未必是属组的成员,要想实现对文件有读权限也需要设置访问控制列表,最后一类用户就是什么权限也没有,我们可以把目录的其他人的权限设为空,这样一来,其他人就没有权限来访问这个文件夹了。
groupadd g1
groupadd g2
groupadd g3
chgrp -R g1 /data/testdir
chmod -R g+s /data/testdir
更改之后,使用root账号在/data/testdir目录下创建一个文件发现属组改成了g1
useradd alice
usermod -G g2 alice
setfacl -Rm d:g:g2:rwx /data/testdir
setfacl -Rm g:g3:r /data/testdir 设置了只读权限只能列出目录下的文件
chmod -R o= /data/testdir,更改权限之后我使用hadoop用户来测试,hadoop不属于他们三个组当中的任何一个,属于其他人
二、创建组sales,gid 3000,passwd:centos,sales设置组的管理员为user2,将用户user1,user2,user3加入到sales辅助组
希望user1 创建新文件 默认的所属组为sales,user2将用户user3从sales组移除,删除sales,user1,user2
创建一个组名为sales使用-g选项指定组的gid为3000,并且给组添加密码centos,可以使用gpasswd跟上组名来添加,user2设置成为sales组的管理,组管理命令gpasswd 使用-A选项添加组的管理员,新建三个用户分别将三个用户加入到组里,user1在创建文件时默认是sales组,并且将user1的主组改为sales,那么之后user1创建文件时它的属组就是sales了,之前将user2设置成为了sales组的管理员,那么user2可以管理sales组里的用户,之后随即删除user3
groupadd -g 3000 sales
gpasswd sales
gpasswd -A user2 sales
usermod -g sales user1
su – user2
gpasswd -d user3 sales
exit
groupdel sales
userdel -r user1
userdel -r user2
三种权限,三种特殊,acl,chattr 总结
三种权限分别是r,w,x
对文件而言
r:可以查看文件
w:可以删除修改创建文件
x:可执行,可在命令提示符下当做命令交给内核运行
对目录而言
r:仅能列出目录下的文件
w:需要配置x权限一直使用,能删除创建修改目录里的内容
x:能进入到目录里面
SUID:运行某程序时,相应进程的文件自身的属主,而不是启动者,加了这项权限后,就以这个文件的属主的权限来执行,一般加到文件上
SGID:运行某程序时,相应进程的文件自身的属组,而不是所启动着的属组,一般这个权限是加到目录上,一旦某目录被设定了SGID,则对此目录有写权限的用户在此目录中创建的文件所属的组为此目录的属组,通常用在公共目录里。
sticky:在目录设置Sticky 位,只有文件的所有者或root可以删除该文件,通常也是运用到目录上。
acl访问控制列表
访问控制列表能灵活的实现权限管理,除了文件的属主属组,还可以为其他人来设置权限,方便权限的控制
chattr设置文件特定的属性
+i 给文件附上这个权限,文件不能删除,重名,更改,就连root也不行
+a(append)只能想文件里面追加内容
原创文章,作者:fszxxxks,如若转载,请注明出处:http://www.178linux.com/27810