文件系统访问控制ACL设置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了文件系统访问控制ACL设置相关的知识,希望对你有一定的参考价值。

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

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

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

4、ACL设置

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

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

[[email protected] home]$ setfacl -m u:test:rwx project

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

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

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

以上是关于文件系统访问控制ACL设置的主要内容,如果未能解决你的问题,请参考以下文章

访问控制列表ACL

访问控制列表acl权限

linux 特殊权限chattr(文件系统级别的权限) Attr 权限和 ACL访问控制列表 ...

Linux ❀ 系统文件权限汇总梳理

Linux ❀ 系统文件权限汇总梳理

LinuxACL详解