1、传统Linux文件系统权限的问题

传统Linux文件系统有三类用户:文件属主-u,组用户-g,其它用户-o,以及三种访问权限:读-r,写-w,执行或目录进入-x,但很多时候并不能满足对文件访问的细微控制,对组用户和其它用户的权限设置粒度比较粗。
例如,对于文件A,除了文件属主,想让10个用户能够访问该文件,其它用户无法访问该文件,那么方法如下:1) 将能访问文件A的10个用户加入A的组g,赋予A的组访问权限;2) A的其它用户无访问权限。
存在的问题是:在1)中,如果对10个组用户再细分,5个用户有rw权限,另外5个用户只有r权限,则无法做到,因为A的组用户只有一种权限。简而言之,在Linux中,一个文件或目录的访问权限最多分三种:属主,组,其它,不能满足多于3种的权限划分,这正是引入ACL的目的。

2、ACL

ACL 是 Access Control List 的缩写,主要的目的是在传统Linux文件系统权限基础上提供更细粒度的权限控制,可以针对单个用户、单个文件或目录进行 ,这对于需要比较复杂、特殊的权限设置是非常有用的。由於 ACL 是Unix-like 系统额外的支持项目,因此要使用 ACL必需要有文件系统的支持才行。 目前绝大部分的文件系统都有支援 ACL 的功能,包括 ReiserFS, EXT2/EXT3, JFS, XFS 等等。

3、启动ACL

[root@linux ~]# mount -o remount,acl /home
[root@linux ~]# mount | grep /home
/dev/hda5 on /home type ext3 (rw,acl)

或者编辑/etc/fstab
[root@linux ~]# vi /etc/fstab
/dev/hda5 /home ext3 defaults,acl 1 2

4、ACL设置

$ setfacl                           //设定某文件或目录的ACL
$ getfacl                           //取得某文件或目录的ACL设定值

建立用户 test对project目录的使用权限(需要有 w):
[cb@linux home]$ ls -ld project/
drwx------ 2 cb cb 4.0K 10月 3 18:32 project

[cb@linux home]$ setfacl -m u:test:rwx project

[cb@linux home]$ getfacl project
# file: project/
# owner: cb
# group: cb
user::rwx
user:test:rwx
group::---
mask::rwx
other::---

[cb@linux home]$ ls -ld project/
drwxrwx---+ 2 cb cb 4096 10月 3 18:32 project    //多了一个+ 的标志,具体的权限得用getfacl来看,ugo的设置与实际有误差

=-=-=-=-=
Powered by Blogilo

文件系统访问控制ACL设置的更多相关文章

  1. emqtt 试用(四)emq 的主题访问控制 acl.conf

    访问控制(ACL) EMQ 消息服务器通过 ACL(Access Control List) 实现 MQTT 客户端访问控制. ACL 访问控制规则定义: 允许(Allow)|拒绝(Deny) 谁(W ...

  2. emqtt emq 的主题访问控制 acl.conf

    访问控制(ACL) EMQ 消息服务器通过 ACL(Access Control List) 实现 MQTT 客户端访问控制. ACL 访问控制规则定义: 允许(Allow)|拒绝(Deny) 谁(W ...

  3. acl设置问题

    在学习nfs服务配置的时候用到了acl规则(服务配置文件权限设置可写,但是由于客户端映射,不能写入,所以要设置系统权限),但是遇到了一个小小的问题:一.当使用-x选项取消规则的时候,再次查看权限后面仍 ...

  4. Windows Azure Virtual Network (10) 使用Azure Access Control List(ACL)设置客户端访问权限

    <Windows Azure Platform 系列文章目录> 本文介绍的是国内由世纪互联运维的China Azure. 我们在创建完Windows Azure Virtual Machi ...

  5. Vlan访问控制ACL

    Author:JinDate:2014-07-05 一.情况描述调整前TP-LINK上联光猫 WLAN PPPOE 拨号,LAN 192.168.1.1 DHCP功能 提供给目前在7楼的办公TP-LI ...

  6. IPFS搭建分布式文件系统 - 访问控制

    IPFS 一个内容可寻址.对等的超媒体分发协议. IPFS网络中的节点形成分布式文件系统. 为什么要用IPFS? “IPFS and the Blockchain are a perfect matc ...

  7. CentOS 7 使用 ACL 设置文件权限

    Linux  系统标准的 ugo/rwx 集合并不允许为不同的用户配置不同的权限,所以 ACL 便被引入了进来,为的是为文件和目录定义更加详细的访问权限,而不仅仅是这些特别指定的特定权限. ACL 可 ...

  8. 负载均衡服务之HAProxy访问控制ACL

    前文我们聊到了haproxy的错误页的配置,自定义日志的配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/12797913.html:今天我们主要来看看hap ...

  9. linux访问控制列表 ACL实现文件权限设置

    ACL:Access Control List,实现灵活的文件权限管理 除了文件的所有者,所属组和其它人,可以对更多的用户设置权限 CentOS7 默认创建的xfs和ext4文件系统具有ACL功能 A ...

随机推荐

  1. Junit中Assert.assertEquals()和Assert.assertSame方法有什么异同

    1)提供的接口数量不完全相同.assertEquals支持boolean,long,int等等java primitiveType变量.assertSame只支持Object. 2)比较的逻辑不同,结 ...

  2. Mac BOOK PRO U盘安装windows7、8及8.1

    http://v.youku.com/v_show/id_XMTI1NjgzMzU0NA==.html http://jingyan.baidu.com/article/1709ad80b3d2f44 ...

  3. java.net.URISyntaxException的解决办法

    java.net.URISyntaxException的解决办法 近日在用HttpClient访问抓取汇率时,为了省力,直接采用 String url = "http://api.liqwe ...

  4. delphi 的结构体对齐关键字

    Align fields (Delphi)   Go Up to Delphi Compiler Directives (List) Index Type Switch Syntax {$A+}, { ...

  5. 再谈用java实现Smtp发送邮件之Socket编程

    很多其它内容欢迎訪问个人站点   http://icodeyou.com 前几天利用Socket实现了用java语言搭建webserver,全程下来应该会对Socket这个东西已经使用的很熟悉了.尽管 ...

  6. Python - 多次检查后缀名(endwith)

    在通过后缀名查找类型文件的时候, 多次使用endwith, 使用元组(tuple), 简化操作. 此类方式, 也能够应用于if语句多次类似检測. 代码 # 列出目录内全部代码 def list_dic ...

  7. 添加 XML内Rows数据

    public static void addItemToXml(string method,string firstKey,string id,string checkName,string refV ...

  8. C#实现如何判断一个数组中是否有重复的元素 返回一个数组升序排列后的位置信息--C#程序举例 求生欲很强的数据库 别跟我谈EF抵抗并发,敢问你到底会不会用EntityFramework

    C#实现如何判断一个数组中是否有重复的元素   如何判断一个数组中是否有重复的元素 实现判断数组中是否包含有重复的元素方法 这里用C#代码给出实例 方法一:可以新建一个hashtable利用hasht ...

  9. 为什么java构造函数的构造器只能在第一行写this() 或者super() ?

    最近在看内部类, 但是被“为什么匿名内部类或者局部内部类使用方法的局部变量时, 局部变量一定得是final类型”困扰着, 在网上查找资料的时候, 发现我对类初始化完全不了解, 之前的认识都是错误! 所 ...

  10. The type java.lang.reflect.AnnotatedElement cannot be resolved. It is indirectly referenced from required .class files

    我这个错误发生于导入项目的时候..我发现主要是jdk版本的问题.切换一下jdk.直接红叉消失就可以了.....jdk版本一致性还是很重要的