文件的正常权限是首选对用户进行分组:文件属主,文件属组和其它。然后每组类用户对文件具有三种基本的权限:r,w,x。除了这些正常的权限设置,还可以设置三种特殊权限。
1. suid。任何用户执行设置有该权限的文件后,不再以用户自己的身份作为进程的属主,而是以该执行文件的属主作为进程的属主。这种权限的实质就是让执行该文件的用户,在进程运行过程中被授予文件属主的身份。
举例:
-rwsr-xr-x. 1 root root 48568 Sep 10 14:24 /tmp/cat
任何用户运行cat时,具有的是root权限,所以可以查看一切文件的内容!
2. sgid。一般使用中,该权限位设置在目录文件上。具有sgid的目录,用户在此目录下创建文件时,新建文件的属组不再是用户所属的基本组,而是目录的属组。
例:
drwxrwsr-x. 2 root cloud 4096 Sep 10 14:35 test
3. 粘滞位。一般使用中,该权限位也设置在目录文件上。对于具有粘滞位的目录,如果一个普通用户对该目录有写权限,则,该用户可以在该目录下创建、删除文件属主是自己的文件,不能删除文件属主不是自己的文件。显然,这就是设置了粘滞位后的效果。否则,该用户是可以删除目录任意文件的!
例:
drwxrwxrwt. 14 root root 4096 Sep 10 14:26 /tmp
这三个特殊权限位一起,可以用一个8进制数来表示。(suid,sgid,sticky)。因此,2进制的001表示设置了sticky,010表示设置了sgid,100表示设置了suid。
在文件显示的权限占位符中,它们分别从左到右替换掉了属主的x位,属组的x位,其它类的x位。对于suid和sgid,若对应的x位具有执行权限,则显示为小写的’s’;若对应的x位不具有执行权限,则显示为大写的’S’。对于sticky,若对应的x位具有执行权限,则显示为小写的’t’;若对应的x位不具有执行权限,则显示为大写的’T’。
特殊权限位的设置:
假定要设置的目录或文件FILE原来的正常权限值是755
1. suid
chmod u+s FILE
chmod 4755 FILE
2. sgid
chmod g+s FILE
chmod 2755 FILE
3. sticky
chmod o+s FILE
chmod 1755 FILE
本文出自 “被褐怀玉徳善人间” 博客,请务必保留此出处http://deshanrenjian.blog.51cto.com/9324633/1550591
文件的三种特殊权限——suid、sgid和粘滞位(sticky)
原文地址:http://deshanrenjian.blog.51cto.com/9324633/1550591