1.对于一般文件来说,权限比较容易理解:“可读”表示能够读取文件的实际内容;“可写”表示能够编辑、新增、修改、删除文件的实际内容;“可执行”则表示能够运行一个脚本程序。但是,对于目录文件来说,理解其权限设置就不那么容易了。很多资深Linux用户其实也没有真正搞明白。对于目录文件来说,“可读”表示能够读取目录内的文件列表;“可写”表示能够在目录内新增、删除、重命名文件;而“可执行”则表示能够进入该目录。文件的可读、可写、可执行权限的英文全称分别是read、write、execute,可以简写为r、w、x,亦可分别用数字4、2、1来表示,文件所有者、文件所属组及其他用户权限之间无关联
654=rw-r-xr--
2.chown 所有者:所有组 文件
chown -R 所有者:所有组 目录,如果修改目录下所有文件所属者,所有组,需要加R
3.chmod 777 文件
chmod -R 777 目录
4.SUID只能对二进制可执行文件进行设置。shadow文件保存着密码,不能对配置命令使用SUID权限,rw-对应rwS,rwx对应rws
5.SGID当对二进制程序进行设置时,能够让执行者临时获取文件所属组的权限;当对目录进行设置时,则是让目录内新创建的文件自动继承该目录原有用户组的名称。
6.SBIT保护位,设置SBIT权限之后,只能所有者才能删除。
SUID、SGID、SBIT特殊权限的设置参数
参数 | 作用 |
u+s | 设置SUID权限 |
u-s | 取消SUID权限 |
g+s | 设置SGID权限 |
g-s | 取消SGID权限 |
o+t | 设置SBIT权限 |
o-t | 取消SBIT权限 |
SUID、SGID与SBIT也有对应的数字表示法,分别为4、2、1
7.隐藏权限
chattr命令中的参数及其作用
参数 | 作用 |
i | 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件 |
a | 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only) |
S | 文件内容在变更后立即同步到硬盘(sync) |
s | 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域) |
A | 不再修改这个文件或目录的最后访问时间(atime) |
b | 不再修改文件或目录的存取时间 |
D | 检查压缩文件中的错误 |
d | 使用dump命令备份时忽略本文件/目录 |
c | 默认将文件或目录进行压缩 |
u | 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复 |
t | 让文件系统支持尾部合并(tail-merging) |
x | 可以直接访问压缩文件中的内容 |
lsattr命令用于查看文件的隐藏权限,英文全称为“list attributes”,语法格式为“lsattr [参数] 文件名称”。
8.文件访问列表file access control list一般权限、特殊权限、隐藏权限其实有一个共性—权限是针对某一类用户设置的,能够对很多人同时生效。如果希望对某个指定的用户进行单独的权限控制,就需要用到文件的访问控制列表(ACL)了。
setfacl setfacl [参数] 文件名称
参数 | 作用 |
-m | 修改权限 |
-M | 从文件中读取权限 |
-x | 删除某个权限 |
-b | 删除全部权限 |
-R | 递归子目录 |
setfcal -m u:用户名:权限 文件
getfacl 文件
备份 还原acl
[root@linuxprobe ~]# cd / [root@linuxprobe /]# getfacl -R home > backup.acl [root@linuxprobe /]# ls -l -rw-r--r--. 1 root root 834 Jul 18 14:14 backup.acl
ACL权限的恢复也很简单,使用的是--restore参数。由于在备份时已经指定是对/home目录进行操作,所以不需要写对应的目录名称,它能够自动找到要恢复的对象:
[root@linuxprobe /]# setfacl --restore backup.acl