文件的特殊权限
1、 SUID:一种对二进制程序进行设置的特殊权限,可以让二进制程序的执行者临时拥有属主的权限
2、 SGID:主要实现两种功能
(1)让执行者临时拥有属组的权限。
(2)在某个目录中创建的文件自动继承该目录的用户组
3、 chmod和chown:用于修改文件属性和权限的最常用命令
(1)chmod一个非常实用的命令,能够用来设置文件或目录的权限,相应的字符法表示为rwxrw----,其对应的数字法表示为760。
(2)chown:可以设置文件或目录的所有者和所属组
(3)chmod和chown命令有一个特别的共性,就是针对目录进行操作时需要加上大写参数-R来表示递归操作,即对目录内所有的文件进行整体操作。
4、 SBIT:确保用户只能删除自己的文件,而不能删除其他用户的文件。常用参数:
1、 a:所有人
2、 u:所有者
3、 g:所有组
4、 o:其他用户
5、 r:可读权限
6、 w:可写权限
7、 x:可执行权限
8、 s:suid或sgid权限(一般配合u或g参数使用,如果配合a参数,则代表同时设置suid和sgid)
9、 t:sbit权限(一般配合o参数使用,配合u或g参数使用无任何效果,配合a参数使用效果等同于配合o参数)
10、 +:添加权限
11、 -:移除权限
文件的隐藏属性
1、 chattr:用于设置文件的隐藏权限。chattr命令中用于隐藏权限的参数及其作用
参数 | 作用 |
---|---|
i | 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件 |
a | 仅允许补充(追加)内容,无法覆盖/删除内容(Append Only) |
S | 文件内容在变更后立即同步到硬盘(sync) |
s | 彻底从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域) |
A | 不能修改这个文件或目录的最后访问时间(atime) |
b | 不能修改文件或目录的存取时间 |
D | 检查压缩文件中的错误 |
d | 使用dump命令备份时忽略本文件/目录 |
c | 默认讲文件或目录进行压缩 |
u | 当删除该文件后依然保留其在硬盘中的数据,方便日后恢复 |
t | 让文件系统支持尾部合并(tail-merging) |
x | 可以直接访问压缩文件中的内容 |
2、 lsattr:用于显示文件的隐藏权限,在Linux系统中,文件的隐藏权限必须使用lsattr命令来查看,平时使用的ls之类的命令则看不出端倪。
文件访问控制列表
1、 setfacl:用于管理文件的ACL规则。其中,针对目录文件需要使用-R递归参数;针对普通文件则使用-m参数;如果想要删除某个文件的ACL,则可以使用-b参数。常用参数:
参数 | 作用 |
---|---|
-R | 递归参数,针对目录文件时使用 |
-m | 针对普通文件时使用 |
-b | 删除文件或目录的ACL |
2、 getfacl:用于显示文件上设置的ACL信息。要设置ACL,用的是setfacl命令;要想查看ACL,则用的是getfacl命令。
3、 su:可以解决切换用户身份的需求,使得当前用户在不退出登录的情况下,顺畅地切换到其他用户,比如从root管理员切换至普通用户。
4、 sudo:把特定命令的执行权限赋予给指定用户,这样既可保证普通用户能够完成特定的工作,也可以避免泄露root管理员密码。用于给普通用户提供额外的权限来完成原本root管理员才能完成的任务。常用参数:
参数 | 作用 |
---|---|
-h | 列出帮助信息 |
-l | 列出当前用户可执行的命令 |
-u用户名或UID值 | 以指定的用户身份执行命定 |
-k | 清空密码的有效时间,下次执行sudo时需要再次进行密码验证 |
-b | 在后台执行指定的命令 |
-p | 更改询问密码的提示语 |
这些命令具有以下功能:
1、限制用户执行指定的命令
2、记录用户执行的每一条命令
3、配置文件(/etc/sudoers)提供集中的用户管理、权限与主机等参数
4、验证密码的后5分钟内(默认值)无须再让用户再次验证密码。
5、 visudo:用于配置用户权限。使用该命令配置用户权限时将禁止多个用户同时修改sudoers配置文件,还可以对配置文件内的参数进行语法检查,并在发现参数错误时进行报错。