Linux文件权限管理
查看文件权限信息
-
ls -l 文件名 #查看文件信息
-
对于每一部分的解释
-
文件类型
字母 含义 - 文件 d 目录 l 软连接 b 快设备 c 字符设备 s 套接字 p 管道 -
用户权限
##第二部分共九个符号,每三个符号代表一个组
1),第一组代表的是自己用户所能用的权限,称为 “u”;
2),第二组代表的是组用户所能使用的权限,称为“g”;
3),第三组代表的是其他用户所能是用的权限,称为“o”; -
系统selinux是否开启
##可以通过sestatus命令查看selinux是否被开启(开启会显示".";没开启就不会显示) -
对于文件:文件内容被系统记录的次数(硬链接个数)
对于目录:目录中子目录的个数
5. 文件拥有者的名称
6. 文件组的拥有名称
7. 对于文件:文件内容的大小
对于目录: 目录中子文件元数据的大小(对于一个空目录默认是6,一个文件名是8+文件名字母的个数)
8. 文件内容被修改的时间
9. 文件名或者目录名 -
文件的拥有者和组拥有者修改命令
-
chown ##可以同时修改文件的拥有者和组拥有者
##加参数"-R" 可以对目录中的所有文件的拥有者和组拥有者递归修改 -
chgrp ##只能修改文件的组拥有者
## 加入参数“-R”,可以对目录和目录下的内容的组拥有者进行递归修改
修改文件的读写执行命令(chmod)
##对于文件或者目录的权限具体有读(r)、写(w)、执行(x)三个权限
chmod三种方式修改权限
-
chmod 复制权限
通过复制另一个目录或者文件的权限到需要修改的目录或者文件上,达到修改文件或目录权限的目的
##注:可以将目录的权限复制到文件上 -
chmod 字符方式设定权限
##注:可以通过-R,来实现同时修改目录和目录下内容的权限 -
chmod 数字方式设定权限
##同样也可以通过递归修改的方式,来修改目录和目录下内容的所有权限
umask修改
umask:在创建文件或者目录时系统对文件或者目录保留的权利
##对于目录:777-umask=文件被创造后的权限
##对于文件:
- 临时修改umask#umask 权限
- 永久umask
-
对 /etc/profile 文件中umask的值修改
-
对/etc/bashrc文件中umask的值修改
-
source /etc/profile 和source /etc/bashrc执行就可以永久修改
特殊权限
-
stickyid #粘制位(chmod o+t 目录名称)
##如果一个目录的stickyid开启,那么这个目录中的文件只能被文件拥有者删除 -
sgid #强制位(chmod g+s 目录名称)
##针对目录:目录中新建的文件自动归属到目录的所属组中
##只针对二进制可执行文件(c程序)
##当运行二进制可执行文件时都是用文件拥有者身份运行,和执行用户无关
- suid #冒险位(chmod u+s filename)
##只针对2进制可执行文件
acl权限
acl权限的优先级比较:拥有者>特殊指定用户>权限多的组>权限少的组>其他
-
getfacl #查看acl规则
-
setfacl #更改acl规则
-
setfacl -m u::rwx 目录或者文件名称 #更改目录或者文件的acl权限
-
setfacl -x u:用户名 文件或者目录名 #删除所在用户权限
-
setfacl -b 名称 #关闭acl列表##注:可以用递归的方式来同时关闭目录本身和目录下内容的acl权限
-
setfacl -Rm u:用户名:权限 目录名 #对目录和目录中已经存在的内容生效(对目录中新建文件不会生效)
-
setfacl -m d:u:用户:权限 #只对目录中新建的文件生效(对目录本身权限和目录里的原文件不会产生变化)
-
acl mask 控制
##mask是能够富裕指定用户权限的最大阀值
恢复:setfacl -m m:权限 文件
lsattr权限
##注:所有用户都不能修改该目录(包括超级用户)
-
lsattr #查看attr权限
-
chattr #添加attr权限
-
chattr +i 目录名 #添加attr权限(所有用户对目录中的文件不能删除,也不能建造)
-
chattr +a 目录名 #添加attr权限(用户可以在目录中添加文件,但不能删除文件
-
##注:删除att权限的时候,只用把+变成-就实现删除