感谢支持
我们一直在努力

Linux档案和目录管理的一道例题

假设系统中有两个账号,分别是 alex 和 arod ,这两个人除了自己群组之外还共同支持一个名为 project 的群组。假设这两个用户需要共同拥有 /srv/ahome/ 目录的开发权,而该目录禁止其他人进入查阅。 请问该目录的权限设定应为何?请先以传统权限说明,再以 SGID 的功能解析。


目标:了解到为何项目开发时,目录最好需要设定 SGID 的权限!
前提:多个账号支持同一群组,且共同拥有目录的使用权!
需求:需要使用 root 的身份来进行 chmod, chgrp 等帮用户设定好他们的开发环境才行! 这也是管理员的重要任务之一


(1)准备工作。


groupadd  project        ——–建立群组project


useradd  -G project  alex     ——–建立用户alex,并且此用户支持群组project


useradd  -G project  arod     ——–建立用户arod,并且此用户支持群组project


id  alex  —-查看alex的账户属性


id  alex  —-查看alex的账户属性


mkdir /srv/ahome    —-  建立工作目录


(2)使用传统权限。


chmod  770 /srv/ahome   —–该目录禁止其他人进入查阅,而同组的人却可以互相修改档案,所以修改权限为770


chgrp project /srv/ahome   —–将/srv/ahome目录的支持群组修改为project


此时工作目录的权限已经设好,支持群组也设定为project了,是不是已经可以了呢?


我们试一下看:


使用alex用户登录tty2


cd /srv/ahome    —-  进入工作目录


touch  123.txt     —–建立档案123.txt


ls  -l  123.txt     —–查看123.txt的档案属性


-rw-rw-r– 1 alex alex 0 Sep 29 22:46 123.txt   我们发现alex建立的档案本身所属的群组为alex。但对于arod来讲,他并不支持alex这个群组,所以arod对应此档案就是other,不过other有r权限,所以理论上arod是可以查看档案内容的。我们下边验证一下。


使用arod用户登录tty3


cd /srv/ahome    —-  进入工作目录


cat -n 123.txt 


xxxxxxxxx         —-123.txt的内容


nano   123.txt    —–使用编辑器编辑123.txt,此时你会发现,当你想要保存的时候,系统提示你“不允许”


(3)使用SGID 权限


chmod  g+s  /srv/ahome  使用root用户修改目录/srv/ahome的权限,使之具有SGID权限。


换arod用户登录,使用nano编辑器修改内容试一下:


nano  123.txt   ——-???什么?还是不行?


呵呵,当然不行了。。。。因为你的档案的支持群组并没有改变啊。


切换root   


rm  123.txt


再使用alex用户登录,


touch  123.txt     —–建立档案123.txt


ls  -l  123.txt     —–查看123.txt的档案属性


-rw-rw-r– 1 alex project 0 Sep 29 22:48 123.txt    —-可以发现123.txt这样档案已经归属于project群组了。


此时再使用arod用户就可以修改内容了,不信可以试一下哦。

赞(0) 打赏
转载请注明出处:服务器评测 » Linux档案和目录管理的一道例题
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏