Linux文件特殊权限SGID

转载自《鸟哥的Linux私房菜》第七章、Linux 文件与目录管理

当s标志在文件拥有者的x项目中为SUID特殊权限,那s在群组的x时则称为Set GID。举例来说,你可以用底下的命令来观察具有SGID权限的文件:

ubuntu中观察/usr/bin/locate文件一直跟踪到/usr/bin/mlocate才是真正的二进制可执行程序:

centos观察/usr/bin/locate文件:

与SUID不同的是,SGID可以针对文件或目录来配置!如果是对文件来说,SGID有如下的功能:

SGID对二进位程序有用;
程序运行者对于该程序来说,需要具备x的权限;
运行者在运行的过程中将会获得该程序群组(Group)的权限支持!

 

 

 

 

ubuntu:

centos:已经没有mlocate.db了

与SUID非常的类似,档以vbird这个账号去运行mlocate或locate运行档时(作为others,具有x权限),那vbird将会取得slocate群组的权限,因此就能去读取mlocate.db文件了。

除了binary program之外,事实上SGID也能用在目录上,这也是非常常见的一种用途!当一个目录配置了SGID的权限后,它将具有如下的功能:

1、使用者若对于此目录具有r和x的权限时,该使用者能够进入此目录(x权限自然就是使用者能进入此目录啦);
2、使用者在此目录下的有效群组(effective group)将会变成该目录所在的群组;(可以理解为使用者执行其x权限进入此目录后将具有目录所在群组的权限,相当于此时使用者的有效群组变成目录所在群组);
3、用途:若使用者在此目录下具有w的权限(可以新建文件),则使用者所创建的新文件,该新文件的群组与此目录的群组相同(以目录的群组的权限在目录下新建文件,则新文件的群组与目录的群组相同)。

 

 

 

 

 

 

 

文末习题

首先确定/srv/ahome目录的需求:要求该目录只允许同在project组的alex与arod去rwx,就以root用户来建立该目录(或者在alex与arod中选一个作project群组的老大来全权管理该目录),那该目录的权限首先得是drwxrwx--- root project /srv/ahome,此时alex与arod都可以进入/srv/ahome目录增(自己新建)删查文件,但alex在目录中建立的文件的权限将是-rw-rw-r-- alex alex <filename>,arod在目录中建立的文件的权限将是-rw-rw-r-- arod arod <filename>,二者建立的文件只能相互读、删除(具有目录群组prject的w权限)而不能写(增删改)。为此要将目录额外增加SGID权限:drwxrws--- root project /srv/ahome,如此alex与arod各自执行x权限进入/srv/ahome目录后便具有目录所属群组project的rwx权限,从而可以相互写(增删改)对方的文件,这才是该建立该目录的初衷诉求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值