Linux特殊权限位详解
linux系统基本权限位为9位权限,但还有额外3为权限位,共12位权限:
suid s(有x) S 4 用户对应的权限位(用户对应的3位上)
sgid s(有x) S 2 用户组对应的权限位(用户组对应的3位上)
sticky t(有x) T 1 其他用户对应的权限位
suid小结:是针对命令和二进制程序的
-
用户或属主对应的前三位权限的x位上如果有s就表示suid权限
当x位上没有小写x执行权限的时候,suid的权限显示的就是大S
-
suid的作用是让普通用户可以以root(或其他)的用户角色运行只有root(或其他)账号才能运行的程序或命令,或程序命令对应本来没有权限操作的文件等。
suid和su及sudo的区别:suid为某一个命令设置特殊权限(使用者为所有人)
sgid小结:sgid是针对用户组权限位的
对于文件来说,sgid的功能如下:
-
sgid仅对二进制程序有效
-
二进制命令或程序需要有可执行权限x
-
执行命令的任意用户可以获得该命令程序执行期间所属组的权限
对于目录来说,sgid的功能如下:
-
linux里默认情况所以用户创建文件,默认用户和组都是自身
-
sgid可以让用户在此目录下创建的文件和目录具有和此目录相同的用户组设置
设置方法:
suid:chmod 4755 file 或者chmod u+s file
sgid:chmod 2755 file 或者 chmod g+s file
sticky:chmod 1777 file 或者 chmod o+t file