十二位权限(Linux附加权限)
附加权限相关概念
linux除了设置正常的读写操作权限外,还有关于一类设置也是涉及到权限 , 叫做Linxu附加权限 。包括 SET位权限(suid,sgid)和粘滞位权限(sticky) 。
SET位权限:
suid/sgid是为了使“没有取得特权用户要完成一项必须要有特权才可以执行的任务”而产生的 。
一般用于给可执行的程序或脚本文件进行设置,其中SUID表示对属主用户增加SET位权限,SGID表示对属组内用户增加SET位权限 。执行文件被设置了SUID、SGID权限后 , 任何用户执行该文件时,将获得该文件属主、属组账号对应的身份 。在许多环境中,suid
和 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
推荐阅读
- 什么应用商店赛车游戏多,最好玩的赛车app
- 分期手机怎么说停我社保,手机分期保险怎么取消
- 怎么评价电子竞技游戏的好,如何评价电子竞技
- 罗永浩直播带货破亿,罗永浩直播带货破亿了嘛
- python的or函数 python中的ord函数
- linux下清除历史命令,linux清除历史命令记录
- 单机玩的角色扮演游戏,好玩单机角色扮演游戏
- java代码查看垃圾内存,java内存排查
- linux系统中用命令行 总结linux命令行的主要用法