linux权限最高命令 linux 最高权限( 五 )


和 sgid 很管用,但是不恰当地使用这些位可能使系统的安全遭到破坏 。所以应该尽量避免使用SET位权限程序 。(passwd
命令是为数不多的必须使用“suid”的命令之一) 。
suid(set User ID,set UID)的意思是进程执行一个文件时通常保持进程拥有者的UID 。然而,如果设置了可执行文件的suid位,进程就获得了该文件拥有者的UID 。
sgid(set Group ID,set GID)意思也是一样,只是把上面的进程拥有者改成进程组就好了 。
SET位权限表示形式(10位权限):
如果一个文件被设置了suid或sgid位 , 会分别表现在所有者或同组用户的权限的可执行位上;如果文件设置了suid还设置了x(执行)位,则相应的执行位表示为s(小写) 。但是,如果没有设置x位,它将表示为S(大写) 。如:
1、-rwsr-xr-x表示设置了suid,且拥有者有可执行权限2、-rwSr--r--表示suid被设置,但拥有者没有可执行权限3、-rwxr-sr-x表示sgid被设置,且群组用户有可执行权限4、-rw-r-Sr--表示sgid被设置,但群组用户没有可执行权限
设置方式:
SET位权限可以通过chmod命令设置,给文件加suid和sgid的命令如下(类似于上面chmod赋予一般权限的命令):
chmodu+sfilename设置suid位chmodu-sfilename去掉suid设置chmodg+sfilename设置sgid位chmodg-sfilename去掉sgid设置
粘滞位权限:
粘滞位权限即sticky 。一般用于为目录设置特殊的附加权限 , 当目录被设置了粘滞位权限后,即便用户对该目录有写的权限,也不能删除该目录中其他用户的文件数据 。设置了粘滞位权限的目录,是用ls查看其属性时,其他用户权限处的x将变为t 。
使用chmod命令设置目录权限时,+t、-t权限模式可分别用于添加、移除粘滞位权限 。
粘滞位权限表示形式(10位权限):
一个文件或目录被设置了粘滞位权限,会表现在其他组用户的权限的可执行位上 。如果文件设置了sticky还设置了x(执行)位,其他组用户的权限的可执行位为t(小写) 。但是,如果没有设置x位,它将表示为T(大写) 。如:
1、-rwsr-xr-t表示设置了粘滞位且其他用户组有可执行权限2、-rwSr--r-T表示设置了粘滞位但其他用户组没有可执行权限
设置方式:
sticky权限同样可以通过chmod命令设置:
chmod +t 文件列表..
十二位的权限表示方法
附加权限除了用十位权限形式表示外,还可以用用十二位字符表示 。
11109876543210SGT r w x r w x r w x
SGT分别表示SUID权限、SGID权限、和 粘滞位权限,这十二位分别对应关系如下:
第11位为SUID位,第10位为SGID位,第9位为sticky位,第8-0位对应于上面的三组rwx位(后九位) 。
在这十二位的每一位上都置值 。如果有相应的权限则为1,没有此权限则为0 。
-rw-r-sr--的值为:010110100100-rwsr-xr-x的值为:100111101101-rwsr-sr-x的值为:110111101101-rwsr-sr-t的值为:111111101101
如果将则前三位SGT也转换成一个二进制数 , 则
suid 的八进制数字是4
sgid 的代表数字是 2
sticky 位代表数字是1
这样我们就可以将十二位权限三位三位的转化为4个八进制数 。其中
最高的一位八进制数就是suid,sgdi,sticky的权值 。
第二位为 拥有者的权值
第三位为 所属组的权值
最后一位为 其他组的权值
附加权限的八进制形式
通过上面,我们知道 , 正常权限和附加权限可以用4位八进制数表示 。类似于正常权限的数字权限赋值模式(使用三位八进制数字赋值)
chmodfile...
我们可以进一步使用4位八进制数字同时赋值正常权限和附加权限 。

推荐阅读