RHCT考试:设置正确的权限

设置正确的权限 chmod,setfacl,suid,sgid,sticky

chmod 改变文件、文件夹的使用权限 Change the permissions mode of a file.

u:拥有者

g:所属组

o:其他人

a:所有人(u+g+o)

r:读权限

w:写权限

x:执行权限

文件权限配置行为如下

+:添加权限   -:减少权限 =:赋予权限

例:

chmod a-x test.txt

chmod u+rw

chmod g-wx

chmod o-x

chmod 666 test.txt

setfacl 设定某个文件或目录的ACL (Access control list)

getfacl 取得某个文件或目录的ACL

在setfacl前,首先要检查文件系统是否支持setfacl,还需要编辑/etc/fstab文件,对需要setfacl的分区激活acl功能。

如: /dev/hda1  /home   ext3  default,acl   0  2

给用户fxd设置acl功能: setfacl –m u:fxd:rw /project/test

删除用户、组或其他人的所有权限,用-x ,不需要指定权限(r,w,x)

如删除UID为500的用户所有权限:setfacl –x u:500 /project/test

umask –S 查看默认创建文件的权限

如:umask=0022 第一位是特殊权限位 (即setuid 或 setgid 或sticky,setuid=4,setgid=2,sticky=1) ,后三位为用户权限位(掩码值)。那创建的文件权限为 666-022=644。(新建文件默认没有x权限,所以用666-022)。

SUID:对一个可执行文件,不是以发起者身份来获取资源,而是以可执行文件的属主身份来执行。
SGID对一个可执行文件,不是以发起者身份来获取资源,而是以可执行文件的属组身份来执行。
STICKY:粘滞位,通常对目录而言。通常对于全局可写目录(other也可写)来说,让该目录具有sticky后,删除只对属于自己的文件有效(但是仍能编辑修改别人的文件,除了root的)。不能根据安全上下文获取对别人的文件的写权限。

授予setuid: chmod u+s 或 chmod 4755            同理:chmod u-s       或 chmod 755

授予setgid: chmod g+s  或 chmod 2755            同理:chmod g-s       或 chmod 755

授予sticky:  chmod o+t   或chmod 1777            同理:chmod o-t      或  chmod 777

特殊权限位很危险,如给vi特殊位,那么会以root身体 编辑任何文件!!!

特殊权限位为 sticky=1,如果一个目录权限为777,且具有粘着位sticky,那么每个用户都可以创建文件,但只能删除自己所有的文件。

对于一个全局可写目录,加上sticky位以后,普通用户将只能删除自己的文件,而不能删除其他用户的文件。

[root@localhost tmp]# su - user1 
[user1@localhost ~]$ id 
uid=512(user1) gid=512(user1) groups=504(mygrp),512(user1)context=root:system_r:unconfined_t:SystemLow-SystemHigh 
[user1@localhost ~]$ cd /tmp/share/ 
-bash: cd: /tmp/share/: Permission denied 
[user1@localhost ~]$ ll -d /tmp/share 
drwxrwSr-t 5 root mygrp 4096 Dec 30 16:09 /tmp/share 
[user1@localhost ~]$  
# 如上例,如果没有原位没有置X权限,即使同组的用户也无法进入目录,
# 再设置SGID位也不起作用

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/21954.html