Linux学习笔记|一道题搞清楚目录与文件权限设置
来源:互联网 发布:mac切换中文输入法 编辑:程序博客网 时间:2024/06/10 12:50
注:本文参考《鸟哥的Linux私房菜》基础学习篇
情景模拟题:假设系统中有四个账号,分别是alex,alex1,arod,arod1,其中alex和alex1同属于alex用户组,arod和arod1属于arod用户组,alex和arod两个用户还共同支持名为project用户组。project用户组的用户拥有/project/process1/目录的开发权,该目录不允许project组外其他人进入查阅。则该目录的设置权限应该是什么?
首先建立四个用户,且满足alex和alex1同属于alex用户组,arod和arod1属于arod用户组,alex和arod两个用户属于project用户组。
[root@localhost ~]# groupadd project[root@localhost ~]# groupadd projectalex[root@localhost ~]# groupadd projectarod[root@localhost ~]# useradd -g projectalex -G project alex[root@localhost ~]# useradd -g projectarod -G project arod[root@localhost ~]# useradd -G projectalex alex[root@localhost ~]# useradd -G projectarod arod
查看各账号属性如下:
在root下新建所需要的开发项目的目录/project/process1
[root@localhost ~]# mkdir -p /project/process
各层目录默认权限及所属用户组为:
该目录属于roo用户组,其他用户权限为r-x,四个用户都可以进入该目录并浏览目录内文件列表,但不能添加和修改目录内文件。
应将所属用户组改为project,并设置权限为project组外人员不能进入查阅,即用户组内权限为rwx,其他人为—
此时,/project/process目录project组外人员无任何权限。但是,存在一个问题,若alex用户在/project/process目录下新建文件newfile时,文件默认属于projectalex用户组,此时arod用户并无权限。因此上述设置只能满足alex1、arod1等组外人员不能进入目录。
同时,虽然alex1与alex同属于projectalex用户组,有权限查看alex新建的文件,但是由于没有权限进入process目录,因此不能对该文件进行任何操作。验证程序如下:
如上图所示,newfile属于projectalex用户组,用户组权限是r–,但是alex1用户并没有权限进入该目录,也没有权限删除newfile文件,若/project/process目录的用户组权限是–x,newfile的用户组权限为—,则alex可以进入该目录并浏览目录下文件列表详情,不能打开newfile文件进行浏览,但是可以删除newfile文件。
将newfile用户组权限改为rwx,由于默认newfile属于projectalex用户组,因此arod用户并无权限打开newfile文件。但是arod可以删除newfile文件:
由上面的结果,可知,对于alex新建的newfile文件,虽然alex1属于newfile的用户组,但是由于alex1没有目录权限,因此无法对newfile进行操作。arod不属于newfile用户组,因此无权限打开newfile文件,但是由于arod属于目录/project/process的用户组,因此具有对目录的rwx权限,因此可以浏览目录下的文件详情列表,也可以删除newfile文件。
此时,仍然不能满足题设要求。有两种方法,第一种是将newfile的用户组进行修改,改为project即可。
此方法存在的问题是每次新建都需要更改所属用户组。
第二种方法是在root下对目录/project/process加入SGID权限。由于目录/project/process属于project用户组,设置SGID权限后,目录/project/process下新建文件的所属组将变为目录的所属组,即所有新建文件所属组都为projet。其他用户必须有r-x权限才能获得SGID权限,因此只有project组内成员才能在目录下新建文件并修改文件,且可以互相修改对方新建的文件。
设置SGID权限后,目录/project/process下新建文件所属组为project,普通用户umask为002,则newfile2权限为-rw-rw-r–,满足题设所有要求。
- Linux学习笔记|一道题搞清楚目录与文件权限设置
- linux学习笔记03-linux文件权限与目录配置
- linux学习笔记:文件权限与目录配置
- [linux学习笔记]文件权限与目录配置w
- linux学习笔记之文件权限与目录配置
- Linux之文件权限与目录设置
- Linux学习笔记:简单了解与设置文件的权限
- linux学习 文件权限与目录配置
- 【Linux学习笔记】Linux的文件权限与目录配置——笔记
- linux:文件/目录权限设置
- 【Linux学习】Linux文件系统6—文件目录权限设置
- 【学习笔记——Linux】Linux 文件权限与目录配置
- 鸟哥的私房菜学习笔记——Linux 的文件权限与目录配置
- 鸟哥的linux私房菜学习笔记《五》文件权限与目录配置
- Linux centos 学习笔记 DAY2 目录与文件的权限意义
- Linux文件安全与权限---学习笔记
- 【Linux入门学习之】Linux文件权限与目录配置
- Linux 学习小结(Linux文件权限与目录配置)
- nyoj 16 矩形嵌套(基础dp)
- Problem B: 时间类的错误数据处理
- 究极java工程师第一步基本服务搭建(二),redhat6.4配置yum源
- 《深入理解mybatis原理》 MyBatis缓存机制的设计与实现
- Vitalik Buterin:以太坊Casper惩罚条件的最小化
- Linux学习笔记|一道题搞清楚目录与文件权限设置
- ZooKeeper_Java操作(创建节点/获取节点/删除节点)
- 在Linux里安装、启动nginx
- Problem C: 时间类的常量
- JVM调优方法(转)
- 设计模式学习--组合模式
- 分布式基础理论
- 构建嵌入式Linux + web+sqlite +php5.0 平台
- NJCTF-easy_crypto writeup