Chapter 14 权限管理
ls -l 命令可以查看所有者
chown 用户名 文件名
修改文件所有者
chgrp 组名 文件名
14.1 基本权限UGO
以drwxr-xr-x为例
第一位确定文件类型
- d:目录
- -:文件
- l:link file, 链接文档
- b:block device, 装置文件里面的可供储存的接口设备,例如硬盘
- c:charactor device, 装置文件里面的串行端口设备,例如键盘、鼠标
后面三位为一组,分别表示所有者(u)、组(g)、其他用户(o)的权限
r(4):可读,对于目录可以使用ls查看内容
w(2):可以修改文件,对于目录可以创建/删除/重命名目录内的内容
删除文件的前提是对所在目录有写权限
x(1):可执行,对于目录是可进入
权限后还有可能有.
或+
,分别表示SELinux安全上下文和FACL权限控制
rm -rf
删除目录需要对目录树中所有非空目录都有写权限
ls -l 的其他内容:
drwxr-xr-x 2 debian debian 4096 Feb 2 09:24 test
2:对于文件是硬链接数,对于目录是一级子目录数(包括.和..即2代表空目录)
debain debian:分别是所有者和组
4096:文件大小(字节),文件夹显示4096字节
Feb 2 09:24:最后修改日期(mtime)
14.1.1 chmod
对象:u g o a
赋值符:+ - =
chmod 751 FILE:
即chmod u=rwx,g=rx,o=x FILE
chmod u+x FILE:所有者添加执行权限
chmod +x FILE:任何人可执行
chmod a-x FILE:
即chmod -x FILE,任何人不可执行
14.1.2 chown chgrp
chown:
chown newowner FILE
-R :如果是目录,则使其下所有内容递归生效
chown newowner:newgroup FILE
chown -R tom /home/test
chgrp:
- chgrp newgroup FILE
chgrp -R tom /home/test
14.1.3 umask
umask影响由该进程创建的文件和目录的权限
计算方式:
目录默认权限是777,文件是666
umask二进制取反,与默认权限的二进制做与运算
举例:shell的umask是0022
[root@Cent-KVM cent]# umask
0022
mkdir 命令创建的目录权限是rwxr-xr-x,即777减去了g和o的w
touch 命令创建的文件权限是rw-r–r–,即666减去g和o的w
umask和默认权限进行二进制的逻辑与
临时修改shell的umask:umask 0000
/etc/login.defs
中umask是077
[root@Cent-KVM cent]# cat /etc/login.defs | grep -i umask
UMASK 077
那么新用户创建的家目录权限应该是700
debian系该值是022,那么新用户家目录权限是755
14.2 基本权限FACL
FACL: File Access Control List,访问控制列表
14.2.2 setfacl
setfacl -m u:lisa:r file
授予lisa读权限setfacl -m u:jack:r,u:tom:rw file
逗号分隔多个条目setfacl -m u:alice:- file
授予alice空权限setfacl -m o::- file
授予其他人空权限setfacl -m m::rx file
取消所有用户和组的读权限setfacl -x g:staff file
删除该组的ACL条目setfacl -b file
删除所有ACL条目getfacl file1 | setfacl --set-file=- file2
复制file1的facl权限到file2