Linux文件权限的作用域有三个:

•属主:u •属组:g •其他:o

针对这三者,除了基础的rwx权限之外,还有如下几个特殊权限

SUID:

默认情况下,进程的属主是其发起者,进程以发起者的身份运行

如果有SUID权限,进程将以发起进程的那个可执行文件的属主的身份运行,拥有这个可执行文件的属主,的全部权限。

展示位置:属主的执行权限位,如果属主原来已经具有执行权限,为小写s,如果没有为大写S。

SGID:

默认情况下,一个用户到一个目录创建一个新文件,新文件的属组是该用户的主组。

使用SGID以后,任意一个在此目录下具有创建文件权限的用户,在创建文件以后,属组都是此目录的属组。

实用场景是,此目录的属组中的所有用户都能对这个目录下的文件进行修改和查看,在项目组中很有用。

展示位置:属组的执行权限位,如果属组原来已经具有执行权限,为小写s,如果没有,为大写S。

Sticky:

在此目录创建文件的用户,只能删除属主是自己的文件。

在有SGID位的目录下,所有用户都能删除其他用户创建的文件,比较不安全;

使用 chmod o+t,对此目录的属主添加sticky权限以后,在此目录创建文件的用户,只能删除属主是自己的文件。

展示位置:其他用户的执行权限位,如果其他用户原来已经具有执行权限,为小写s,如果没有,为大写S。

改变文件以上三个特殊权限的方式:

chomd o[+|-]s
#SUID 
chmod g[+|-]s
#SGID
chmod o[+|-]t
#Sticky