1、chmod(更改用户访问权限)
linux有三个权限位:owner(user:用户拥有者)、group(用户组)、other(出来用户所有者和用户组的其他用户)
用ls -l filename:查看文件的详情
-rw-r--r--. 1 root root 0 1月 31 15:13 test.txt
文件目录权限_第1张图片
2、第一个属性部分为文件类型:
d:表示目录
f:表示文件
l:表示连接文件
3、更改访问权限
r=4,w=2,x=1

  1. 给文件用户拥有者赋rwx权限
    chmod 744 test.txt
    chmod u=rwx test.txtx
    #chmod u=rwx,g=r,o=r test.txt
  2. 每个用户都加上(去掉)可执行权限
    chmod a+x test.txt
    chmod a-x test.txt
  3. 给目录及子目录下面的文件加赋权限(-R)
    #chmod -R 777 zxlinux/
    文件目录权限_第2张图片

2、chown (更改用户所有者和所属组)
chown不仅能更改用户所有者,也能更改用户所属组
1.更改文件的用户所有者
#chown user1 zx.txt2
备注:user1这个用户要已经存在系统中;
文件目录权限_第3张图片
2.更改文件的用户所属组
#chown user1:root zx.txt2
文件目录权限
3.批量(递归) 修改目录及子目录的用户所有者(-R)
#chown -R user1:user1 zxlinux/
文件目录权限_第4张图片

3、chgrp(修改文件或者目录的所属组)
#chgrp user1 zx.txt2

4、umask
创建文件默认权限是644
创建目录默认权限是755
系统有个umask默认值是0022
文件和目录的权限是和umask有关系的
目录必须要有执行权限(因为要进入目录查看文件):777-0022=755
文件可以没有执行权限:666-0022=644
umask值是可以修改的,umask用来决定默认的文件和目录的权限的,文件目录权限会随着umask值变化而变化
计算方式:
例如 umask为0003,那么文件的权限为664
正确计算方式如下:用权限位相减
666=(rw-rw-rw-)-(-------wx)=rw-rw-r--=664
不正确计算方式:666-003=663(不能这么用数字相减计算)
文件目录权限_第5张图片
如果umask为003,那么目录的权限为
计算方式:用权限位相减
777-003=(rwxrwxrwx)-(------wx)=rwxrwxr--=774
文件目录权限_第6张图片

5、隐藏权限lsattr_chattr
chattr:设置隐藏权限;
lsattr:查看文件是否设置隐藏权限;
1.给文件加i隐藏权限(+i)
#chattr +i file1
文件加了i隐藏权限后:1.不能对文件进行vim编辑内容
2.不能修改文件名称
3.不能删除这个文件(如果-f强制删除他会保存一个缓存文件:因为vi编辑后会生成一个缓存文件保存后会覆盖原来文件,那么如果强制删除这个加了隐藏权限的文件会出现一个缓存文件,即删除不成功)
文件目录权限_第7张图片
文件目录权限
总结:+i隐藏权限后,文件不能追加修改内容及修改时间和名称,不能新建及删除这个文件;
去掉文件i隐藏权限后文件又可以编辑修改了(-i):
#chattr -i file1
文件目录权限_第8张图片
2.给文件加a权限(+a)
#chattr +a file2
+a权限:
1.能touch文件(更改文件时间)
#touch file2
2.在文件末尾追加( >>)文件内容;
head -n2 /etc/passwd >> file2
3.不能vim编辑写文件里内容,不能更改,不能删除,不能重命名
文件目录权限_第9张图片
去掉文件a权限(-a)
#chattr -a file2
3.给目录加隐藏权限(+i)
chattr +i document1
文件目录权限_第10张图片
给目录加了i权限后:1.不能删除目录;
[root@zxlinux7-01 tmp]# rm -r document1
rm:是否进入目录"document1"? y
rm:是否删除目录 "document1/document2"?y
rm: 无法删除"document1/document2": 权限不够
2.不能修改目录名字;
[root@zxlinux7-01 tmp]# mv document1 111
mv: 无法将"document1" 移动至"111": 不允许的操作
3.不能创建子目录子文件
[root@zxlinux7-01 tmp]# touch document1/1.txt
touch: 无法创建"document1/1.txt": 权限不够

lsattr查看目录及目录下面的子目录和子文件
#mkdir document1/document2
[root@zxlinux7-01 tmp]# lsattr document1
---------------- document1/document2
查看目录(-d)
#lsattr -d document1
[root@zxlinux7-01 tmp]# lsattr -d document1
---------------- document1
4.给目录添加a权限(+a):
目录添加a权限:1.可以追加(在目录下创建子目录子文件),不可以更改
2.可以给目录下文件追加内容;

#chattr +a document1
[root@zxlinux7-01 tmp]# lsattr document1
---------------- document1/document2
[root@zxlinux7-01 tmp]# lsattr -d document1
-----a---------- document1
lsattr -R:可以逐级查看目录下的子目录及子文件
#lsattr -R document1