升级与操作有风险,请谨慎操作,提前做好备份!!!本公众号的内容只在测试环境上验证,不对您的任何操作行为负责。
最近有好多学员建议我写一篇关于Linux系统文件权限的科普文章,虽然这样的文章满天飞,但是我还是要给大家整理一篇。
一、Linux系统文件基本权限介绍
Linux系统使用了基于用户、组和权限的访问控制机制,所以系统文件和目录的权限是非常重要的,它们决定了谁可以读取、写入或执行文件。
1、Linux使用三个字符来表示一个文件或目录的权限:
-
r(Read 读权限),对应数字为4
-
w(Write 写权限),对应数字为2
-
x(Execute 执行权限),对应数字为1
2、Linux文件和目录的权限分为三个组:
-
拥有者(Owner):文件的创建者,u表示
-
组(Group):与文件关联的用户组,g表示
-
其他(Others):系统上的所有其他用户,o表示
3、具体样例说明如下图所示:

-
rwx代表文件所有者(u表示)权限,这里是用户uos对该文件拥有读写执行权限
-
r-x代表所属组(g表示)的权限,这里所属组拥有对该文件读和执行的权限
-
r-x 代表其他用户(o表示)的权限
二、Linux系统文件的s权限
1、s权限(setuid)说明
setuid:该位是让普通用户可以以root用户的角色运行只有root账号才能运行的程序或命令。s:文件属主和组设置SUID和GUID,文件在被设置了s权限后将以root身份执行。在设置s权限时文件属主、属组必须先设置相应的x权限,否则s权限并不能正真生效。

2、此处说明一下s权限有大写S和小写s之分:
小写s(如 rwsr-xr-x):表示文件设置了SetUID权限,并且文件本身有执行权限(x)。这种情况下,当用户执行该文件时,会以文件所有者的身份运行,实现临时权限提升。例如,/usr/bin/passwd 命令通常显示 -rwsr-xr-x,允许普通用户修改密码时以root权限操作/etc/shadow文件。
大写S(如 rwSr-xr-x):表示文件设置了SetUID权限,但文件本身没有执行权限(x)。这种情况下,SetUID位无效,因为文件无法被执行,权限提升机制不会生效。大写S通常出现在手动设置SetUID,但忽略文件执行权限。

3、设置setuid权限的方法:
方法1:
第1步:chmod 755 /usr/bin/passwd第2步:chmod u+s /usr/bin/passwd

方法2:
chmod 4755 /usr/bin/passwd

4、取消setuid权限的方法:
方法1:
chmod u-s /usr/bin/passwd

方法2:
chmod 755 /usr/bin/passwd

三、Linux系统文件的t权限
1、t权限(粘滞位)说明
-
设置粘滞位,一个文件可读写的用户并一定想让他有删除此文件的权限,如果文件设置了t权限则只用属主和root有删除文件的权限,通过chmod +t filename 来设置t权限。
-
同样的,当没有x权限的时候,为大写T
-
设置粘滞位的文件,只能由以下账户删除:超级管理员、该目录的所有者、该文件的所有者
2、设置t权限的方法:
方法1:
chmod 1755 1.txt ##可以是目录,也可以是文件

方法2:
第1步:chmod 755 2.txt第2步:chmod +t 2.txt

3、取消t权限的方法:
方法1:
chmod 755 2.txt
方法2:
chmod -t 1.txt

四、Linux系统文件其他特殊权限
1、i权限(不可修改权限)
i:不可修改权限,例:chattr +i 2.txt 则2.txt文件就不可修改,无论任何人,如果需要修改需要先删除i权限,用chattr -i 2.txt就可以了。查看文件是否设置了i权限用lsattr 2.txt


2、a权限(追加权限)
a:只追加权限,对于日志系统很好用,这个权限让目标文件只能追加,不能删除,而且不能通过编辑器追加。可以使用chattr +a设置追加权限


1856

被折叠的 条评论
为什么被折叠?



