在项目实际开发中,常常会是一个项目有多人同时进行开发,同一个项目下的文件多个人都可以修改,删除,读取。
这里用一个用一个经典的情景题,可以更好地掌握,SUID, SGID, SBIT等概念,也能更好地理解和使用如chmod,chgrp,su等命令。
情景题如下:
假设系统有两个账号,tom和jack,这两个人除了自己用户组之外还共同支持一个名为project的用户组。假设这两个用户需要共同拥有project目录开发权,且改目录不许其他人进入查询。请问该目录的权限设置为何?请先现已传统权限说明,再以SGID的功能解析。
操作步骤:
管理员账号登陆操作的命令
[root]#mkdir project //创建项目目录
[root]#ll -d project
[root]#groupadd project //创建项目用户组
[root]#useradd -G project tom //创建用户tom
[root]#useradd -G project jack //创建用户jack
[root]#id tom
[root]#id jack
[root]#chgrp project project //把root创建的project目录的用户组改为project
[root]#chmod -R 770 project //最重要的是这一步,传统权限设置如此,会导致tom或者jack在project目录里创建的文件不能被project用户组里的其他用户编辑,但是能删除
/**使用SGID的功能就可以解决上面遇到的问题**/
[root]#chmod -R 2770 project
[root]#ll -d project
普通用户tom登陆操作的命令
[tom]$cd /tmp/project/
[tom]$ll
[tom]$vi projectfile
普通用户jack登陆操作的命令
[jack]$vi projectfile
相关阅读:
Linux权限与目录之间的关系经典情景题
Linux系统中XAMPP中proFTPd的简明配置方法
使用chown和chgrp命令修改linux文件的拥有者及用户组
CENTOS5 yum安装与配置vsFTPd FTP服务器
蓝文
|作者步骤简单,知识体系完整,非常有用