番外8.1 Task

---------系统中有两个账号,分别是alex与arod,这两个账号除了支持自己的组,还共同支持一个名为project的组。如这两个账号需要共同拥有/srv/ahome/目录的开发权,且该目录不允许其他账号进入查阅,请问该目录的权限应如何设定?请先以传统权限说明,再以SGID的功能解析。 目标:了解为何项目开发时,目录最好设定SGID的权限。

前提:多个账号支持同一组,且共同拥有目录的使用权。

需求:需要使用root的身份运行chmod、chgrp等命令,帮用户设定好他们的开发环境。这也是管理员的重要任务之一。

--------------

项目分析:

                00:创建共同组(project)

                01:创建2个账户及相关数据;建立共同开发目录/srv/ahome

                02:该目录不允许其他账号进入查阅

=========================================================================

利用chmod命令修改文件的特殊权限(SUID):

只有二进制程序文件才可以设定SUID,其他类型的文件设置没有意义。 在赋予SUID权限后,该文件的执行者仅在程序运行时将拥有该文件拥有者的权限。 执行者必须要拥有该文件的执行权限(x)替换成S。

番外8.1 Task_第1张图片

修改文件与目录的默认权限与隐藏权限

umask指定用户在建立文件或目录时的默认权限值。(我们只关注0 022后三位)

假设我们想要自己创建的文件具有6(r+w),   同组成员具有修改编辑的权限(w)不只是只读权限,   采用下面命令修改文件权限共同编辑项目文件。那么默认的umask初始值022应变成002;

chattr命令(了解就行!)

a:系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件

i:不得任意改动文件或目录。

番外8.1 Task_第2张图片

lsattr  -参数 文件或目录

-a:将隐藏文件的属性也显示出来。 -d:如果是目录,仅列出目录本身的属性而非目录内的文件名。 -R:连同子目录的数据也一并列出来

番外8.1 Task_第3张图片

----------------------------------------------------------------------------------------------------------------------------00+01+02:创建共同组(project):

番外8.1 Task_第4张图片

番外8.1 Task_第5张图片

测试一下,在alex建立文件,让arod去处理这个文件。(这个文件属于组alex,  arod对它是其他人身份只有可读权限r

番外8.1 Task_第6张图片

加入SGID的权限!当目录拥有SGID权限时,用户在该目录下创建的文件的属组都会继承该目录的属组。 字符形式表示:增加权限g+s,移除权限g-s;  数字形式表示:0表示去除SGID权限,2表示添加SGID权限,在数字表达形式开头加0或2, 如:0770移除SGID权限, 2770添加SGID权限;

番外8.1 Task_第7张图片

再测试一下!

番外8.1 Task_第8张图片

alex、arod建立的新文件所属组都是project,加上umask都是002,这样两个账号可以互相修改对方文件;

你可能感兴趣的:(linux)