权限管理
rwx的含义及其与数字的对应关系
查看文件权限
[root@Dezyan ~]# ll 1.txt
-rw-r--r-- 1 root root 0 11月 9 02:23 1.txt
或[root@Dezyan ~]# stat 1.txt
文件权限位
文件权限三位为1组,共三组,分别对应:
rw- #第一列 文件的属主(使用 u 表示) 文件属于哪个用户
r-- #第二列 文件的属组(使用 g 表示) 文件对于小组的权限
r-- #第三列 文件的其他权限(使用 o 表示) 文件对于陌生人的权限
r read # 读
w write # 写
x excuter # 可执行
- # 无权限
本质上其实就是三位为一组,其中,当前位有任意权限时值为1,无权限的为0,组合成一个三位二进制数,最后转换为10进制的数
#例如: rw-r--r-- 转为数字就是 110 100 100 即 644
所以,rwx与数字(10进制)的对应关系为:
#r : 4
#w : 2
#x : 1
计算权限时,只需把每组位相加即可,更为方便;
chown 变更文件或目录的拥有者或所属群组
chown [选项] [主].[组] [参数]
-R #递归修改(将目录及目录下的文件一并修改
#修改文件1.txt的属主为dezyan
[root@Dezyan ~]# chown dezyan 1.txt
[root@Dezyan ~]# ll 1.txt
-rw-r--r-- 1 dezyan root 0 11月 9 02:23 1.txt
#修改文件1.txt的属主属组都为dezyan
[root@Dezyan ~]# chown dezyan.dezyan 1.txt
[root@Dezyan ~]# ll 1.txt
-rw-r--r-- 1 dezyan dezyan 0 11月 9 02:23 1.txt
#修改目录test及其下所有文件的属主属组都为dezyan
[root@Dezyan ~]# chown -R dezyan.dezyan test
[root@Dezyan ~]# ll test
-rw-r--r-- 1 dezyan dezyan 0 11月 9 02:49 test01.txt
-rw-r--r-- 1 dezyan dezyan 0 11月 9 02:49 test02.txt
chmod 变更文件或目录的权限
chmod [选项] [权限位][赋权符号][权限] [参数]
chmod [选项] [权限位数字表示法] [参数]
-R #递归授权 比较危险 别用来修改目录
#当权限位为空时,添加和剥夺w权限时只会对属主权限位更改,添加和剥夺rx权限时对所有权限位更改;
u #符号代表当前用户;
g #符号代表和当前用户在同一个组的用户,以下简称组用户;
o #符号代表其他用户;
a #符号代表所有用户;
+ #符号代表添加目标用户相应的权限;
- #符号代表删除目标用户相应的权限;
= #符号代表添加目标用户相应的权限,删除未提到的权限;
#给一个没有任何权限的test01.txt文件增加属主位和其他位的r权限
[root@Dezyan test]# ll test01.txt
---------- 1 root root 0 11月 9 03:23 test01.txt
[root@Dezyan test]# chmod uo+r test01.txt
或:# chmod 404 test01.txt
[root@Dezyan test]# ll test01.txt
-r-----r-- 1 root root 0 11月 9 03:23 test01.txt
#对test01.txt文件的所有位置增加w权限
[root@Dezyan test]# chmod ugo+w test01.txt
或:# chmod a+w test01.txt
[root@Dezyan test]# ll test01.txt
-rw--w-rw- 1 root root 0 11月 9 03:23 test01.txt
#不管test01.txt文件原来有什么权限,将属组权限位设置为rwx
[root@Dezyan test]# ll test01.txt
-rw-rwxrw- 1 root root 0 11月 9 03:23 test01.txt
权限类型的分类
rwx三种常规权限
特殊权限位
名称 | 表示 | 作用 | 解释 |
---|
属主setuid权限位 | u+s(4) | 在用户执行命令的时候相当于属主的权限去执行 | 添加s后,任何人使用命令的时候相当于命令的属主的权限 |
属组setgid权限位 | g+s(2) | 在用户执行命令的时候相当于属组的权限去执行 | 添加s后,任何人使用命令的时候相当于命令的属组的权限 |
sticky bit粘滞位 | o+t(1) | 可以针对不同用户设置不同的权限 | 一个目录设置粘滞位后,只有管理员和文件拥有者可对其进行所有操作,其他用户只能查看。 |
隐藏权限位
lsattr 查看隐藏权限位
lsattr [参数]
[root@Dezyan ~]# lsattr 1.txt
-------------------- 1.txt
chattr 修改文件隐藏权限
chattr +/-[选项] [参数]
a #设置该文件,只能通过追加内容的方式修改文件;
i #设置该文件,除了查看外,任何操作都不能进行;
#增加a隐藏权限,并测试
[root@Dezyan ~]# lsattr 1.txt
-------------------- 1.txt
[root@Dezyan ~]# chattr +a 1.txt
[root@Dezyan ~]# lsattr 1.txt
-----a-------------- 1.txt
[root@Dezyan ~]# echo 111 > 1.txt
-bash: 1.txt: 不允许的操作
[root@Dezyan ~]# echo 111 >> 1.txt
#增加i隐藏权限
[root@Dezyan ~]# chattr +i 1.txt
#除了查看什么也不能干
在企业中发现文件可能没有隐藏权限,但是还是无法操作,因为第三方安全软件对文件做了保护措施。
rwx对于文件和目录的作用
- 文件(默认权限644;最高权限为666,所有位置可读写)
权限(只有该权限时) | 作用 | 注意 |
---|
r | 只读;不可写(可强制写入)、执行、删除 | |
w | 由于不能查看,所以不能用vim方式写入,只能使用echo追加内容;不能执行 | 正常写入必须有rw权限 |
x | 任何操作无法进行 | 正常执行必须有rx权限 |
更多操作权限(只有该权限时) | 作用 | 注意 |
---|
r | 任何操作无法进行 | |
w | 任何操作无法进行 | |
x | 控制是否可以进入(cd)该目录; | |
1.r-x组合作用: 可以进入到目录可以查看目录下所有的文件信息 看文件内容具体看文件的权限;不能在目录下删除 创建 改名等动作
2.rwx组合作用: 目录的最高权限可以进入可以增删改查
为什么会出现权限拒绝?
#文件的其他位置没有r权限
[oldboy@lzy oldboy]$ cat /etc/shadow
cat: /etc/shadow: Permission denied
#passwd的其他位置没有w权限 必须rw
[oldboy@lzy oldboy]$ echo '#' >> /etc/passwd
-bash: /etc/passwd: Permission denied
# 因为/etc目录的其他位没有w权限
[oldboy@lzy oldboy]$ touch /etc/passwd.txt
touch: cannot touch ‘/etc/passwd.txt’: Permission denied
# 因为/etc目录的其他位没有w权限
[oldboy@lzy oldboy]$ rm -rf /etc/shadow
rm: cannot remove ‘/etc/shadow’: Permission denied
# 因为root目录的其他位置没有r-x权限
[oldboy@lzy oldboy]$ ls /root/
ls: cannot open directory /root/: Permission denied
umask值
-
作用:决定默认创建文件和目录的权限
- 文件默认权限: 是由文件的最高权限666减去umask值得到的
666
-022
=644 - 目录默认权限: 是由目录的最高权限777减去umask默认的值
777
-022
=755
-
查看/修改默认的umask值
[root@Dezyan ~]# umask
0022
#临时修改umask值
##umask值修改为044
[root@Dezyan ~]# umask 044
文件权限: 666-044=622
目录权限: 777-044=733
##umask值修改为032
如果umask值存在奇数位,文件相减后再奇数位置+1,目录正常相减
[root@Dezyan ~]# umask 032
[root@Dezyan ~]# umask
0032
文件权限: 666-032=634+010=644
目录权限: 777-032=745