3.3 特殊权限
如果一个文件很重要,需要依赖特殊权限避免其被删除。
由于特殊权限会拥有一些“特权”,因而用户若无特殊需要,不应该去打开这些权限,避免安全方面出现严重漏洞,甚至摧毁系统。3个权限是对了执行文件或目录进行的,使用了特殊权限将影响执行者的操作权限。
对文件可以设置SUID和SGID特殊权限;对目录可以设置SGID和sticky-bit特殊权限。
3.3.1 suid:特殊位
针对文件/程序时,使调用文件的用户,临时具备属主的能力。
例:
使sam用户能够查看root目录下的文件。
cd ~ # 建立在root目录下 touch file1 vim file1 >> 123 chmod u+s /usr/bin/cat chmod u-s /usr/bin/cat ll /usr/bin/cat # 切换账户 su - sam cat /root/file1
3.3.2 chattr:文件属性
在文件上启用该属性,所有用户不能更改、重命名、删除该文件。 这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式: a:让文件或目录仅供附加用途。 b:不更新文件或目录的最后存取时间。 c:将文件或目录压缩后存放。 d:将文件或目录排除在倾倒操作之外。 i:不得任意更动文件或目录。 s:保密性删除文件或目录。 S:即时更新文件或目录。 u:预防意外删除
chattr
命令的基本语法如下:
chattr [选项][+/-/=<属性>][文件或目录...]
参数说明:
-
-R
递归处理,将指定目录下的所有文件及子目录一并处理。 -
-v
<版本编号> 设置文件或目录版本。 -
-V
显示指令执行过程。 -
+<属性>
开启文件或目录的该项属性。 -
-<属性>
关闭文件或目录的该项属性。 -
=<属性>
指定文件或目录的该项属性。
例:
用chattr命令防止系统中某个关键文件file100被修改:
# 添加i属性 chattr +i file100 lsattr file100 rm -rf file100 mv file100 file200 vim file100 # 无法修改 # 删除i属性 chattr -i file100
-
让某个文件file100只能往里面追加数据,但不能删除,适用于各种日志文件:
chattr +a file100 echo 1111 >> file100 # 只能追加,无法修改、删除
3.3.3 umask:进程掩码
umask命令指定在建立文件时预设的权限掩码。 umask可用来设定[权限掩码]。[权限掩码]是由3个八进制的数字所组成,将现有的存取权限减掉权限掩码后,即可产生建立文件时预设的权限。 目录默认0755:0777-0022 文件默认0644:0777-0022-0111(去掉所有执行权限)
umask
命令的基本语法如下:
umask [-S][权限掩码]
参数说明:
-
-S 以文字的方式来表示权限掩码
例:
使用指令"umask"查看当前权限掩码。
umask
修改umask值。
umask 0000