Linux怎样设置setgid权限,Linux, setgid, setuid, sticky, 文件权限

一般情况下,一个普通文件或者目录的文件属性如下:

-rw-r–r– 1 pinker users 61967 2006-06-22 21:39 frogleap.swf

“-rw-r–r–” 顺次意思为:“-”这个文件是普通文件,“rw-”表示文件属主pinker有可读可写权限,“r–”表示属主所在组有可读权限,最后的“r–”表示其他用户只有可读权限。该权限用8进制表示是0644或者644(省去前面一个特殊权限位)。具体可以参考这一份文档。

这里想着重说的是三个特殊权限位setuid,setgid 和 sticky。

setuid:当文件被设定setuid位以后,任何可以运行此文件的用户都可以像文件属主一样运行它,听着别扭,举个例子:如果你给/bin/rm设置setuid权限位,也即将原来的“-rwxr-xr-x”改成了“-rwsr-xr-x”,那么所有用户都可以利用这个rm程序来删掉系统内的任何文件。当文件本来就没有可执行权限还加上setuid属性时,权限位就用“S”表示,像这样“-rwSr–r–”。

setgid:与setuid功能类似,setgid权限位被设定以后,任何用户都拥有了该文件所属组的权限,也就是可以像该文件组内成员一样运行它。另外当一个目录被设置setgid位后,以后复制到这个目录下的文件的组权限自动被改成目录文件所在组,除非复制是加上-p (preserve)选项。

sticky:当sticky位被设置以后,只有root或者文件所有这才能删除或移动它,例如/tmp目录就被设了sticky位“drwxrwxrwt”,这样所有的用户都对这个文件夹可读可写,却只有root(/tmp属主)能删除或移动它。

setuid,setgid,sticky的八进制位分别是4, 2, 1,助记法表示为u+s,g+s,o+t,(删除标记位是u-s,g-s,o-t),例如:

chmod 4644 frogleap.swf *结果是“-rwSr–r–”

chmod u+s frogleap.swf *结果与上面一样

以上三种特殊权限位现在已经用得比较少或者不建议使用,例如setuid和setgid有安全风险,linux的虚拟内存机制使得sticky作用已不大,详细解释在这里。但是偶尔还是需要,记之以备忘。

Linux, setgid, setuid, sticky, 文件权限

[@more@]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值