suid guid

      s u i d意味着如果某个用户对属于自己的s h e l l脚本设置了这种权限,那么其他用户在执行这,一脚本时也会具有其属主的相应权限。于是,如果根用户的某一个脚本设置了这样的权限,那么其他普通用户在执行它的期间也同样具有根用户的权限。同样的原则也适用于g u i d,执行相应脚本的用户将具有该文件所属用户组中用户的权限。

      为什么要使用suid/guid为什么要使用这种类型的脚本?这里有一个很好的例子。我管理着几个大型的数据库系统,而对它们进行备份需要有系统管理权限。我写了几个脚本,并设置了它们的g u i d,这样我指定的一些用户只要执行这些脚本就能够完成相应的工作,而无须以数据库管理员的身份登录,以免不小心破坏了数据库服务器。通过执行这些脚本,他们可以完成数据库备份及其他管理任务,但是在这些脚本运行结束之后,他们就又回复到他们作为普通用户的权限。有相当一些U N I X命令也设置了s u i d和g u i d。

如果想找出这些命令,可以进入/ b i n或/ s b i n目录,执行下面的命令:
$ ls -l | grep '^...s'
上面的命令是用来查找s u i d文件的;
$ ls -l | grep '^...s..s'
上面的命令是用来查找s u i d和g u i d的。

 

现在我们明白了什么是s u i d,可是如何设置它呢?下面就来介绍这个问题。如果希望设置
s u i d,那么就将相应的权限位之前的那一位设置为4;如果希望设置g u i d,那么就将相应的权限
位之前的那一位设置为2;如果希望两者都置位,那么将相应的权限位之前的那一位设置为4+2。
一旦设置了这一位,一个s将出现在x的位置上。记住:在设置s u i d或g u i d的同时,相应的
执行权限位必须要被设置。例如,如果希望设置g u i d,那么必须要让该用户组具有执行权限。
如果想要对文件l o g i n设置s u i d,它当前所具有的权限为rwx rw- r-- (741),需要在使用
c h m o d命令时在该权限数字的前面加上一个4,即chmod 4741,这将使该文件的权限变为rws-rw- r - -。
$ chmod 4741 logit

 

 

几个例子

chmod 4755 rws r-x r- x 文文件被设置了s u i d,文件属主具有读、写和执行的权限,所有其
他用户具有读和执行的权限
chmod 6711 rws --s --s 文文件被设置了s u i d和g u i d,文件属主具有读、写和执行的权限,
所有其他用户具有执行的权限
chmod 4764 rws rw- r- - 文文件被设置了s u i d,文件属主具有读、写和执行的权限,同组用
户具有读和执行的权限,其他用户具有读权限

 

 

以上是摘自pdf上的讲解,总之我在刚看完是很费解的。因为感觉互相都矛盾。不知道你在看了之后,会不会也是费解。可能我这水平有限,不过思考了一会,现在已经有我的理解之后的认识了。下面分享一下我的理解

 

 

777 是 属主 同组 其他 都可以 读写执行。

suid的规则是  777前面加4

guid的规则是 777前面加2

suid加guid的规则是 777前面 是4+2 也就是6

 

根据pdf上讲的,suid是用来让一个普通用户拥有属主用户的权利,当执行完脚本之后,他又会变为普通用户。假设 4711  那么suid的作用来讲,只是控制前三个属主组的三个权限,也就是rwx, 按照规则,加上4之后,控制到了属主,那一定要更改权限位,当然也就是rws--r--r了。

 

guid则是控制属组权限。所以其他用户和属主的权限位就不归guid来控制了。根据规则 711 那么也就是2711,  相应的权限位由原先的

rwx--x--x   就变成了rwx--s--x了

 

suid+guid  也就是6711  那么也就是由原来的rwx--x--x     变成了 rws--s--x了。。。

 

PS!!    书上写错了!!  书上写的是  rws--s--s

 

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值