您的位置:首页 > 运维架构 > Linux

linux,扩展权限的使用,以及如何使用扩展权限建立共享工作目录

2011-07-31 21:44 731 查看
文件权限管理 扩展:

文件一般有属主,属组的属性

权限一般有可读,可写,可执行

[root@server56 ~]# ls -l `which passwd`
-rwsr-xr-x 1 root root 22960 2006-07-17 /usr/bin/passwd




但是你看到这个文件的那个“s”位了吧,这是一个文件的扩展权限

即使一个文件的SUID

SUID:set UID 如果一个文件有SUID的权限时,不是以用户本身的权限来运行,

而是以该命令本身属主的权限来运行的,例如普通用户在修改自己的密码的时候,修改密码

不需要修改/etc/shdow文件,但是普通用户是没有权限的,但是用户使用passwd这个命令

修改自身密码的时候还是可以修改,这就是因为“s”位的作用,这就给了普通用户

root的权限来修改/etc/shdow

【不能把脚本的权限设置“s”位,以免发生错误造成损失】

要给文件添加这个权限使用命令

chmod u+s FILE[例如a.sh]


去除这个权限

chmod u-s FILE[例如a.sh]


有的时候加完权限你会发现会有一个“s”或者是“S”,

原来有执行权限“x”的是“s”,原来没有执行权限的是“S”

有了SUID,当然你也会想到有没有SGID呢?

答案是有的,我们先假设一种情景,

有一个工作组developer group:

有三个用户:dev1,dev2,dev3

他们都没有root权限,但是此时想实现在这个工作目录下实现共享,那该怎么做呢?

此时SGID就派上用处了

下面我们来探讨一下如何实先在一个工作目录下实现三个或者三个以上的用户之间能

够共享彼此的文件

我们知道当用户创建文件以后,这个文件都会有一个属组和属主,通常情况下刚建立

的文件属主是这个用户本身,属组是这个用户的组,如果修改属主来实现以上功能

很显然,不态可能,那么就通过修改属组来实现,但是修改属组后这个文件还是单一

的属于某个用户,还是不能实现以上功能,

现在我们来模拟一下这个环境

先建立一个工公共的工作目录就叫/peoject

创建三个用户redhat,gentoo,ubantu

修改工作目录的基本组是不能实现以上功能的,但是我们在已开学习的时候,就知道

还可以我这个工作目录指定一个相同的其他组,假设这个其他组叫devgrp

我们将这个文件添加到属组属性修改一下

chown :devgrp ./project


修改完成你会看到如下结果

drwxrw-r-t   2 root devgrp  4096 07-31 19:07 project




此时各个用户对此目录下的文件只能有读得权限,要想有写的权限就应该为此目录

修改权限

chmod -R g+w ./project

drwxrw-r-t   2 root devgrp  4096 07-31 19:07 project


此时你进入此目录以后就是不可以创建自己的文件的,因为你还不属于这个组

此时将这个三个用户都添加到这个附加组命令如下:

usermod -a -G devgrp redhat
usermod -a -G devgrp ubantu
usermod -a -G devgrp centos




此时你就可以在这个目录下创建文件了,还可以查看其他用户的文件

但是此时你对其他用户的文件只有读得权限,因为其他用户的文件属主还是属于其用户

本身的,若想有修改其他普通用户的文件,就要加“SGID”了,命令:

chmod g+s /project

drwxrwsr-t   2 root devgrp  4096 07-31 19:07 project


此时你在这个公共的工作目录下创建文件 修改文件都是可以的

当然你会发现,你也能删除其他用户的文件,这样当然很不好了

此时又一个扩展权限隆重登场了

那就是最后的粘滞位,就是sticky:冒险位,粘滞位,

只能删除自己的,不能修改别人的

这个权限的出现有效缓解了以上的问题,使用命令

chmod o+t /project

就实现了此控制功能,不但实现了共享,还实现了 控制

由以上可知,又有三个权限为出现了

SUID , SGID ,STICKY

由此类推可以用二进制数字表示其权限就是

000 --- 换算成十进制数就是:0

001 --t 1

010 -s- 2

011 -st 3

100 s-- 4

101 s-t 5

110 ss- 6

111 sst 7

那么于此就可以这样给文件修改权限了

chmod 2755 file 表示增加SGID位
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐