Linux 文件权限管理
文件系统权限介绍
文件系统权限介绍
Linux文件权限简单灵活,易于理解和应用,能够处理大多数权限使用情况。
文件有三个适用权限的用户类别:
- 单个用户拥有者,通常是创建该文件的用户。
- 单个组拥有者,通常是创建该文件的用户的主要组。
- 除了用户拥有者和组拥有者之外的其他用户。
[deng@centos7 ~ 19:04:32]$ ls -l myfile
-rw-r-----. 1 deng wheel 2262 7月 20 19:04 myfile
对于/etc/passwd文件来说,-rw-r–r–字符串分成四份,格式如下:
-
第一位代表文件类型,例如,**-**代表普通文件,d代表目录,l(L的小写)代表软链接等。
-
第二到第四位,代表user-owner具有的权限,也就是deng用户具有的权限。
-
第五到第七位,代表group-owner具有的权限,也就是deng组中成员具有的权限。
-
第八到第十位,代表user-owner和group-owner之外的用户具有的权限。

权限优先级
如果文件的用户是deng,组成员中也有deng用户,那么deng获得最终权限是deng用户拥有者的权限,而不是组中成员具有的权限。

rwx 权限解读
目录中保存文件,文件中保存数据(例如字符串)。

文件系统权限管理
chmod 命令
作用:更改文件不同owner权限。
**语法1:**chmod WhoHowWhat /path/to/file
- Who: u(user) g(group) o(other) a(all)
- How: +(添加) -(减去) =(精确设置)
- What: r(read) w(write) x(excute) -(不具有权限)
针对文件
[deng@centos7 ~ 19:05:44]$ mkdir /lab
[deng@centos7 ~ 19:06:18]$ cd /lab
[deng@centos7 lab 19:07:05]$ cp /etc/passwd .
[deng@centos7 lab 19:08:33]$ ls -l passwd
-rw-r--r--. 1 root root 2312 7月 20 19:07 passwd
# 给user增加x权限
[deng@centos7 lab 19:09:15]$ chmod u+x ./passwd
[deng@centos7 lab 19:10:42]$ ls -l passwd
-rwxr--r--. 1 root root 2312 7月 20 19:09 passwd
# 一次性设置多个
[deng@centos7 lab 19:11:27]$ chmod u-wx,g+w,o=- passwd
[deng@centos7 lab 19:12:05]$ ls -l passwd
-r--rw----. 1 root root 2312 7月 20 19:11 passwd
# 一次性设置所有对象
[deng@centos7 lab 19:13:33]$ chmod a=rwx passwd
[deng@centos7 lab 19:14:18]$ ls -l passwd
-rwxrwxrwx. 1 root root 2312 7月 20 19:13 passwd
[deng@centos7 lab 19:15:42]$ chmod a-wx passwd
[deng@centos7 lab 19:16:27]$ ls -l passwd
-r--r--r--. 1 root root 2312 7月 20 19:15 passwd
针对目录
# 针对目录,准备目录和文件
[deng@centos7 lab 19:17:33]$ mkdir dir01
[deng@centos7 lab 19:18:05]$ touch dir01/file01
[deng@centos7 lab 19:18:42]$ ls -ld dir01 dir01/file01
drwxr-xr-x. 2 root root 20 7月 20 19:17 dir01
-rw-r--r--. 1 root root 0 7月 20 19:18 dir01/file01
# 递归清除所有对象所有权限
[deng@centos7 lab 19:19:55]$ chmod -R a=- dir01
[deng@centos7 lab 19:20:33]$ ls -ld dir01 dir01/*
d---------. 2 root root 20 7月 20 19:19 dir01
----------. 1 root root 0 7月 20 19:19 dir01/file01
# 递归设置user对象权限为rwx
[deng@centos7 lab 19:21:18]$ chmod -R u+rwx dir01
[deng@centos7 lab 19:22:05]$ ls -ld dir01 dir01/*
drwx------. 2 root root 20 7月 20 19:21 dir01
-rwx------. 1 root root 0 7月 20 19:21 dir01/file01
语法2: chmod ### /path/to/file
- 第1个#,代表user权限
- 第2个#,代表group权限
- 第3个#,代表other权限
#,是一个数字范围是0(—)到7(rwx)。
补充:二进制与10进制转换
二进制 十进制 对应权限
000 0 --- 无
001 1 --x 执行
010 2 -w- 写
011 3 -wx 写和执行
100 4 r-- 读
101 5 r-x 读和执行
110 6 rw- 读和写
111 7 rwx 读、写、执行
# 示例1,文件权限为 -rw- r-- r--
# 用二进制表达权限为 110 100 100,对应10进制为644
# 示例2,文件权限为 -rwx rw- r-x
# 用二进制表达权限为 111 110 101,对应10进制为765
# 文件权限为634对应的权限
[deng@centos7 ~ 19:23:42]$ mkdir /lab;cd /lab
[deng@centos7 lab 19:24:15]$ cp /etc/passwd .
[deng@centos7 lab 19:25:05]$ chmod 634 passwd
[deng@centos7 lab 19:25:48]$ ls -l passwd
-rw--wxr--. 1 root root 2312 7月 20 19:25 passwd
[deng@centos7 lab 19:26:33]$ stat -c %A passwd
-rw--wxr--
[deng@centos7 lab 19:27:15]$ stat -c %a passwd
634
# 文件权限为755对应的权限
[deng@centos7 lab 19:28:44]$ chmod 755 passwd
[deng@centos7 lab 19:29:22]$ ls -l passwd
-rwxr-xr-x. 1 root root 2312 7月 20 19:28 passwd
chown chgrp 命令
作用:更改文件属主。
[deng@centos7 lab 19:30:33]$ ls -l passwd
-rwxr-xr-x. 1 root root 2312 7月 20 19:30 passwd
# 修改user owner
[deng@centos7 lab 19:31:18]$ chown deng passwd
[deng@centos7 lab 19:32:05]$ ls -l passwd
-rwxr-xr-x. 1 deng root 2312 7月 20 19:31 passwd
# 修改 group owner
[deng@centos7 lab 19:33:33]$ chgrp wheel passwd
[deng@centos7 lab 19:34:18]$ ls -l passwd
-rwxr-xr-x. 1 deng wheel 2312 7月 20 19:33 passwd
# 同时修改 user和group owner
[deng@centos7 lab 19:35:42]$ chown laowang:root passwd
[deng@centos7 lab 19:36:27]$ ls -l passwd
-rwxr-xr-x. 1 laowang root 2312 7月 20 19:35 passwd
# 对目录递归修改
[deng@centos7 lab 19:37:15]$ ls -R -ld dir01 dir01/*
drwxrwx---. 2 root root 20 7月 20 19:37 dir01
-rwxrwx---. 1 root root 0 7月 20 19:37 dir01/file01
# 对目录递归修改user owner
[deng@centos7 lab 19:38:42]$ chown -R deng dir01/
[deng@centos7 lab 19:39:27]$ ls -R -ld dir01 dir01/*
drwxrwx---. 2 deng root 20 7月 20 19:38 dir01
-rwxrwx---. 1 deng root 0 7月 20 19:38 dir01/file01
# 对目录递归同时修改user和group owner
[deng@centos7 lab 19:40:33]$ chown -R laowang:wheel dir01/
[deng@centos7 lab 19:41:18]$ ls -R -ld dir01 dir01/*
drwxrwx---. 2 laowang wheel 20 7月 20 19:40 dir01
-rwxrwx---. 1 laowang wheel 0 7月 20 19:40 dir01/file01
案例:准备一个普通用户家目录
模拟:创建一个用户tom,该用户没有自动创建家目录
[deng@centos7 ~ 19:42:33]$ useradd -M tom
准备用户家目录
[deng@centos7 ~ 19:43:18]$ cp -r /etc/skel/ /home/tom
[deng@centos7 ~ 19:44:05]$ ls -ld /home/tom
drwxr-xr-x. 3 root root 78 7月 20 19:43 /home/tom
[deng@centos7 ~ 19:45:33]$ chmod u=rwx,go=- /home/tom
[deng@centos7 ~ 19:46:18]$ ls -ld /home/tom
drwx------. 3 root root 78 7月 20 19:45 /home/tom
[deng@centos7 ~ 19:47:05]$ chown -R tom:tom /home/tom
# 验证
[deng@centos7 ~ 19:48:33]$ su - tom
[tom@centos7 ~]$
验证 rwx 权限-针对文件
# 初始环境准备
[deng@centos7 ~ 19:49:18]$ mkdir /lab
[deng@centos7 lab 19:50:05]$ cd /lab
[deng@centos7 lab 19:50:42]$ cp /etc/hosts .
[deng@centos7 lab 19:51:27]$ chmod o=- hosts
[deng@centos7 lab 19:52:05]$ cat hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# 验证
[deng@centos7 ~ 19:53:33]$ cd /lab
[deng@centos7 lab 19:54:18]$ ls -l hosts
-rw-r-----. 1 root root 158 7月 20 19:54 hosts
[deng@centos7 lab 19:55:05]$ cat hosts
cat: hosts: Permission denied
[deng@centos7 lab 19:55:42]$ echo hello world > hosts
-bash: hosts: Permission denied
[deng@centos7 lab 19:56:27]$ /lab/hosts
-bash: /lab/hosts: Permission denied
# r权限验证--准备
[deng@centos7 lab 19:57:33]$ chmod o=r hosts
# r权限验证
[deng@centos7 lab 19:58:18]$ ls -l hosts
-rw-r--r--. 1 root root 158 7月 20 19:57 hosts
[deng@centos7 lab 19:59:05]$ cat hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
# w权限验证--准备
[deng@centos7 lab 20:00:33]$ chmod o=w hosts
# w权限验证
[deng@centos7 lab 20:01:18]$ ls -l hosts
-rw-r---w-. 1 root root 158 7月 20 20:01 hosts
[deng@centos7 lab 20:02:05]$ echo ni hao > hosts
[deng@centos7 lab 20:02:42]$ cat hosts
cat: hosts: Permission denied
# 是否可以使用vim修改文件内容
[deng@centos7 lab 20:03:33]$ vim hosts
# 仍然无法读取文件内容,只能覆盖修改
[deng@centos7 lab 20:04:18]$ echo hello world >> hosts
[deng@centos7 lab 20:05:05]$ cat hosts
ni hao
hello world
# x权限验证--准备
[deng@centos7 lab 20:06:33]$ chmod o=x hosts
[deng@centos7 lab 20:07:18]$ echo 'echo hello world' > mycommand
[deng@centos7 lab 20:08:05]$ cat /lab/mycommand
echo hello world
[deng@centos7 lab 20:08:42]$ chmod u+x mycommand
[deng@centos7 lab 20:09:27]$ ls -l mycommand
-rwxr----x. 1 root root 17 7月 20 20:08 mycommand
[deng@centos7 lab 20:10:15]$ /lab/mycommand
hello world
# x权限验证
[deng@centos7 lab 20:11:33]$ /lab/mycommand
bash: /lab/mycommand: Permission denied
# 原因:无法读取文件代码
[deng@centos7 lab 20:12:18]$ chmod o=rx mycommand
[deng@centos7 lab 20:13:05]$ /lab/mycommand
hello world
验证 rwx 权限-针对目录
# 初始环境准备
[deng@centos7 lab 20:14:33]$ mkdir dir01
[deng@centos7 lab 20:15:18]$ mv hosts dir01
[deng@centos7 lab 20:16:05]$ chown -R root:root dir01/
[deng@centos7 lab 20:16:42]$ chmod -R a=- dir01
[deng@centos7 lab 20:17:27]$ chmod o=r dir01/hosts
[deng@centos7 lab 20:18:15]$ ls -ld dir01 dir01/*
d---------. 2 root root 19 7月 20 20:16 dir01
-------r--. 1 root root 17 7月 20 20:07 dir01/hosts
# 无权限验证
[deng@centos7 lab 20:19:33]$ ls dir01/
ls: cannot open directory dir01/: Permission denied
[deng@centos7 lab 20:20:18]$ cd dir01/
-bash: cd: dir01/: Permission denied
[deng@centos7 lab 20:21:05]$ touch dir01/file01
touch: cannot touch 'dir01/file01': Permission denied
# r权限--准备
[deng@centos7 lab 20:22:33]$ chmod o=r dir01/
# r权限--验证
[deng@centos7 lab 20:23:18]$ ls dir01/
hosts
[deng@centos7 lab 20:24:05]$ ls -l dir01/
ls: cannot access dir01/hosts: Permission denied
total 0
-????????? ? ? ? ? ? hosts
# x权限--准备
[deng@centos7 lab 20:25:33]$ chmod o=x dir01/
[deng@centos7 lab 20:26:18]$ ls -ld dir01 dir01/*
d--------x. 2 root root 19 7月 20 20:25 dir01
-------r--. 1 root root 17 7月 20 20:07 dir01/hosts
# x权限--验证
[deng@centos7 lab 20:27:33]$ cat dir01/hosts
echo hello world
[deng@centos7 lab 20:28:18]$ cd dir01/
[deng@centos7 dir01 20:29:05]$ ls
ls: cannot open directory .: Permission denied
[deng@centos7 dir01 20:29:42]$ cat hosts
echo hello world
# w权限--准备
[deng@centos7 lab 20:30:33]$ chmod o=w dir01/
[deng@centos7 lab 20:31:18]$ ls -ld dir01 dir01/*
d-------w-. 2 root root 19 7月 20 20:30 dir01
-------r--. 1 root root 17 7月 20 20:07 dir01/hosts
# w权限--验证
[deng@centos7 lab 20:32:33]$ touch dir01/file01
touch: cannot touch 'dir01/file01': Permission denied
[deng@centos7 lab 20:33:18]$ rm dir01/hosts
rm: cannot remove 'dir01/hosts': Permission denied
# 追加x权限
[deng@centos7 lab 20:34:33]$ chmod o=wx dir01/
[deng@centos7 lab 20:35:18]$ ls -ld dir01 dir01/*
d-------wx. 2 root root 19 7月 20 20:34 dir01
-------r--. 1 root root 17 7月 20 20:07 dir01/hosts
# 体会wx效果
[deng@centos7 lab 20:36:33]$ cat dir01/hosts
echo hello world
[deng@centos7 lab 20:37:18]$ touch dir01/file01
[deng@centos7 lab 20:38:05]$ rm dir01/hosts
rm: remove write-protected regular file 'dir01/hosts'? yes
[deng@centos7 lab 20:39:33]$ ls -ld dir01 dir01/*
d-------wx. 2 root root 20 7月 20 20:38 dir01
-rw-r--r--. 1 deng deng 0 7月 20 20:38 dir01/file01
权限补充说明
- 对于文件来说:
- 赋予 w 权限的时候,也会赋予 r 权限。
- 赋予 x 权限的时候,也会赋予 r 权限。
- 对于目录来说:
- 赋予 r 权限的时候,也会赋予 x 权限。
- 赋予 w 权限的时候,也会赋予 rx 权限。
文件权限总结

管理文件默认权限
umask 命令
设置创建新文件时,要取消的权限。
# 默认情况
[deng@centos7 ~ 20:40:48]$ mkdir lab;cd lab
[deng@centos7 lab 20:41:33]$ touch f1;mkdir d1
[deng@centos7 lab 20:42:18]$ ls -l
total 0
drwxr-xr-x. 2 deng deng 6 7月 20 20:41 d1
-rw-r--r--. 1 deng deng 0 7月 20 20:41 f1
# umask值中权限是要剔除掉的
[deng@centos7 lab 20:43:33]$ umask
0022
# 设置为0
[deng@centos7 lab 20:44:18]$ umask 0
[deng@centos7 lab 20:45:05]$ umask
0000
# 再次创建文件
[deng@centos7 lab 20:46:33]$ touch f2;mkdir d2
[deng@centos7 lab 20:47:18]$ ls -ld *2
drwxrwxrwx. 2 deng deng 6 7月 20 20:46 d2
-rw-rw-rw-. 1 deng deng 0 7月 20 20:46 f2
# 此时目录的权限是777,文件的权限是666
# 根据用户需求定制umask值,例如希望group和other位置不具有权限
[deng@centos7 lab 20:48:33]$ umask 077
[deng@centos7 lab 20:49:18]$ umask
0077
[deng@centos7 lab 20:50:05]$ touch f3;mkdir d3
[deng@centos7 lab 20:50:42]$ ls -ld *3
drwx------. 2 deng deng 6 7月 20 20:50 d3
-rw-------. 1 deng deng 0 7月 20 20:50 f3
umask 持久化生效
# 针对单个用户
[deng@centos7 lab 20:51:33]$ echo 'umask 077' >> ~/.bashrc
# 针对所有用户
[deng@centos7 ~ 20:52:18]$ echo 'umask 077' >> /etc/bashrc
管理文件特殊权限
命令对文件能执行哪些操作,取决于执行者。

SUID 针对文件
# 普通用户执行passwd命令可以修改/etc/shadow文件原因
[deng@centos7 ~ 20:53:33]$ passwd
Changing password for user deng.
Changing password for deng.
(current) UNIX password:
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[deng@centos7 ~ 20:54:48]$ ls -l /etc/shadow
----------. 1 root root 1264 7月 20 20:54 /etc/shadow
# 查看passwd程序权限
[deng@centos7 ~ 20:55:33]$ ls -l $(which passwd)
-rwsr-xr-x. 1 root root 27856 Apr 1 2020 /usr/bin/passwd
# 普通用户执行passwd的命令时候,有效身份是root用户, root用户是可以修改shadow文件内容。
# 添加 suid 权限
[deng@centos7 ~ 20:56:48]$ chmod u+s /usr/bin/vim
[deng@centos7 ~ 20:57:33]$ ls -l /usr/bin/vim
-rwsr-xr-x. 1 root root 2337216 10月 14 2020 /usr/bin/vim
# 此时普通用户就可以修改任意文件
[deng@centos7 ~ 20:58:48]$ vim /etc/passwd
# 删除suid权限
[deng@centos7 ~ 20:59:33]$ chmod u-s /usr/bin/vim
SGID 针对目录
# 准备用户和组
[deng@centos7 lab 21:00:48]$ pwd
/lab
[deng@centos7 lab 21:01:33]$ groupadd devops
[deng@centos7 lab 21:02:18]$ useradd -G devops dev1
[deng@centos7 lab 21:03:05]$ useradd -G devops dev2
# 准备目录
[deng@centos7 lab 21:04:33]$ mkdir webapp
[deng@centos7 lab 21:05:18]$ chgrp devops webapp
[deng@centos7 lab 21:06:05]$ chmod g=rwx webapp
# 准备默认权限
[deng@centos7 lab 21:06:48]$ echo "umask 002" >> /etc/bashrc
# 实验一:普通用户创建文件,只有自己可以编辑
[deng@centos7 lab 21:07:33]$ su dev1
[dev1@centos7 lab]$ touch webapp/dev-f1
[dev1@centos7 lab]$ ll webapp/dev-f1
-rw-rw-r--. 1 dev1 dev1 0 7月 20 21:07 webapp/dev-f1
# 实验二:普通用户创建文件,组中成员也可以编辑
[deng@centos7 lab 21:08:48]$ chmod g+s webapp
[deng@centos7 lab 21:09:33]$ su dev1
[dev1@centos7 lab]$ touch webapp/dev-f2
[dev1@centos7 lab]$ ll webapp
总用量 0
-rw-rw-r--. 1 dev1 dev1 0 7月 20 21:07 dev-f1
-rw-rw-r--. 1 dev1 devops 0 7月 20 21:09 dev-f2
[deng@centos7 lab 21:10:48]$ su dev2
[dev2@centos7 lab]$ echo hello world >> webapp/dev-f2
[dev2@centos7 lab]$ cat webapp/dev-f2
hello world
sticky 针对目录
# 示例文件
[deng@centos7 lab 21:11:33]$ ls -ld /tmp
drwxrwxrwt. 20 root root 4096 7月 20 21:11 /tmp
[deng@centos7 lab 21:12:18]$ stat -c %a /tmp
1777
[deng@centos7 ~ 21:13:05]$ rm /tmp/storage.log
rm: remove write-protected regular empty file '/tmp/storage.log'? yes
rm: cannot remove '/tmp/storage.log': Operation not permitted
# 用户只能删除自己创建的文件
[deng@centos7 ~ 21:14:33]$ touch /tmp/deng-f1
[deng@centos7 ~ 21:15:18]$ ls /tmp/deng-f1
/tmp/deng-f1
[deng@centos7 ~ 21:16:05]$ rm /tmp/deng-f1
查找系统中特殊权限文件
# 查找系统中所有具有suid权限的文件
[deng@centos7 ~ 21:17:33]$ find / -perm -4000
# 或者
[deng@centos7 ~ 21:18:18]$ find / -perm -u+s
管理文件扩展权限
需求:创建一个文件,root用户也无法编辑和删除?
解答:文件扩展属性。
[deng@centos7 lab 21:19:33]$ chattr --help
Usage: chattr [-pRVf] [-+=aAcCdDeijPsStTuF] [-v version] files...
两个常用属性:
- append only (a),只能追加文件内容。
- immutable (i),不可变更属性。
append only
[deng@centos7 ~ 21:20:48]$ touch /opt/operator.log
[deng@centos7 ~ 21:21:33]$ chattr +a /opt/operator.log
[deng@centos7 ~ 21:22:18]$ echo hello world > /opt/operator.log
-bash: /opt/operator.log: 不允许的操作
[deng@centos7 ~ 21:23:05]$ echo hello world 1 >> /opt/operator.log
[deng@centos7 ~ 21:23:48]$ echo hello world 2 >> /opt/operator.log
[deng@centos7 ~ 21:24:33]$ rm -f /opt/operator.log
rm: 无法删除'/opt/operator.log': 不允许的操作
immutable 属性
[deng@centos7 ~ 21:25:48]$ cp /etc/passwd ./passwd
[deng@centos7 ~ 21:26:33]$ chattr +i passwd
[deng@centos7 ~ 21:27:18]$ echo 'lw:x:1000:1000:lw:/home/lw:/bin/bash' >> passwd
-bash: passwd: 不允许的操作
[deng@centos7 ~ 21:28:05]$ rm -f passwd
rm: 无法删除'passwd': 不允许的操作
[deng@centos7 ~ 21:28:48]$ chattr -i passwd
[deng@centos7 ~ 21:29:33]$ echo 'lw:x:1000:1000:lw:/home/lw:/bin/bash' >> passwd
# 重要的文件,内容改完后,再把i属性加回去。
[deng@centos7 ~ 21:30:18]$ chattr +i passwd
管理文件访问控制列表(了解)
需求:如何给不同的用户赋予不同的权限?
解答:访问控制列表。
针对用户
# 准备文件
[deng@centos7 lab 21:31:33]$ cp /etc/passwd ./passwd
[deng@centos7 lab 21:32:18]$ chmod o=- passwd
[deng@centos7 lab 21:33:05]$ ll passwd
-rw-r-----. 1 root root 2539 7月 20 21:32 passwd
# 赋予deng读取权限
[deng@centos7 lab 21:33:48]$ setfacl -m u:deng:rw passwd
# 此时 group 位置对应的权限是mask权限,也就是特定用户、所有组和other用户能够获得的最大权限。
[deng@centos7 lab 21:34:33]$ ls -l passwd
-rw-rw----+ 1 root root 2539 7月 20 21:33 passwd
[deng@centos7 lab 21:35:18]$ getfacl passwd
# file: passwd
# owner: root
# group: root
user::rw-
user:deng:rw-
group::r--
mask::rw-
other::---
# 验证
[deng@centos7 ~ 21:36:05]$ ll /lab/passwd
-rw-r-----+ 1 root root 2539 7月 20 21:33 /lab/passwd
[deng@centos7 ~ 21:36:48]$ head -n 1 /lab/passwd
root:x:0:0:root:/root:/bin/bash
# 同时设置多个规则,参照如下
[deng@centos7 lab 21:37:33]$ setfacl -m u:tom:rwx,u:deng:r passwd
针对组
[deng@centos7 lab 21:38:18]$ setfacl -m g:wheel:rwx passwd
# 此时 mask 值变为 rwx
[deng@centos7 lab 21:39:05]$ ls -l passwd
-rw-rwx---+ 1 root root 2539 7月 20 21:38 passwd
[deng@centos7 lab 21:39:48]$ getfacl passwd
# file: passwd
# owner: root
# group: root
user::rw-
user:deng:rw-
group::r--
group:wheel:rwx
mask::rwx
other::---
mask 设置
为了防止权限失控,最后一步设置相关用户的最大权限。
[deng@centos7 lab 21:40:33]$ setfacl -m m:- passwd
[deng@centos7 lab 21:41:18]$ ls -l passwd
-rw-------+ 1 root root 2539 7月 20 21:40 passwd
[deng@centos7 lab 21:42:05]$ getfacl passwd
# file: passwd
# owner: root
# group: root
user::rw-
user:deng:rw- #effective:---
group::r-- #effective:---
group:wheel:rwx #effective:---
mask::---
other::---
针对目录的 acl
在具有默认acl规则的目录中创建文件,文件会继承目录的默认acl。
[deng@centos7 lab 21:43:33]$ mkdir test
[deng@centos7 lab 21:44:18]$ setfacl -m u:deng:rw test
[deng@centos7 lab 21:45:05]$ ls -ld test
drwxrwxr-x+ 2 root root 6 7月 20 21:44 test
[deng@centos7 lab 21:45:48]$ touch test/f1
[deng@centos7 lab 21:46:33]$ ls -l test/f1
-rw-r--r--. 1 root root 0 7月 20 21:45 test/f1
# 设置目录默认 acl
[deng@centos7 lab 21:47:18]$ setfacl -m d:u:deng:rw test
[deng@centos7 lab 21:48:05]$ getfacl test/
# file: test/
# owner: root
# group: root
user::rwx
user:deng:rw-
group::r-x
mask::rwx
other::r-x
default:user::rwx
default:user:deng:rw-
default:group::r-x
default:mask::rwx
default:other::r-x
[deng@centos7 lab 21:48:48]$ touch test/f2
[deng@centos7 lab 21:49:33]$ ls -l test/f2
-rw-rw-r--+ 1 root root 0 7月 20 21:48 test/f2
[deng@centos7 lab 21:50:18]$ getfacl test/f2
# file: test/f2
# owner: root
# group: root
user::rw-
user:deng:rw-
group::r-x #effective:r--
mask::rw-
other::r--

1万+

被折叠的 条评论
为什么被折叠?



