Linux权限位

参考链接:Linux权限位(超详细) (biancheng.net)Linux SetUID(SUID)文件特殊权限用法详解 (biancheng.net)Linux Stick BIT(SBIT)文件特殊权限用法详解 (biancheng.net)

记录一下 健忘😭

Linux权限位

Linux常见的文件有三种:

  • r(可读):对文件而言,具有读取文件内容的权限;对目录来说,具有浏览目录的权限。
  • w(可写):对文件而言,具有新增,修改,删除文件内容的权限;对目录来说,具新建,删除,修改,移动目录内文件的权限。
  • x(可执行):对文件而言,具有执行文件的权限;对目录了来说该用户具有进入目录的权限。

但是初次之外还有两种权限s(针对可执行文件或目录,使文件在执行阶段,临时拥有文件所有者的权限)和t(针对目录,任何用户都可以在此目录中创建文件,但只能删除自己的文件),这两个权限会占用x权限的位置

权限位共有12位,如下所示:

串位表示法: u t g t s t r o w o x o r g w g x g r a w a x a u_t g_t s_t r_o w_o x_o r_g w_g x_g r_a w_a x_a utgtstrowoxorgwgxgrawaxa

  • u t u_t ut指代SetUID, g t g_t gt指代SetGID, s t s_t st指代sticky bit
  • 后面的 r w x rwx rwx分别代表用户、组、其他的读写权限
  • u t = 1 u_t = 1 ut=1时, x o x_o xo就替换为 s s s,当 g t = 1 g_t = 1 gt=1时, x g x_g xg就替换为 s s s,当 s t = 1 s_t = 1 st=1时, x a x_a xa就表示为 t / T t/T t/T(t代表不可执行、T代表可执行)
  • 常用的chmod命令就是指代这个串位,如chmod 4755,chmod 777(省略了前三位)

举个栗子:

[06/18/21]seed@VM:.../sites-available$ ls -al
total 20
drwxr-xr-x 2 root root 4096 Jun 16 01:57 .
drwxr-xr-x 8 root root 4096 Jul 26  2017 ..
-rw-r--r-- 1 root root 2219 Jun 16 01:57 000-default.conf
-rw-r--r-- 1 root root 6338 Apr  6  2016 default-ssl.conf

7列信息的含义:

  1. 第一列:规定了不同的用户对文件所拥有的权限,具体权限的含义将在后续讲解。
  2. 第二列:引用计数,文件的引用计数代表该文件的硬链接个数,而目录的引用计数代表该目录有多少个一级子目录。
  3. 第三列:所有者,也就是这个文件属于哪个用户。默认所有者是文件的建立用户。
  4. 第四列:所属组,默认所属组是文件建立用户的有效组,一般情况下就是建立用户的所在组。
  5. 第五列:大小,默认单位是字节。
  6. 第六列:文件修改时间,文件状态修改时间或文件数据修改时间都会更改这个时间,注意这个时间不是文件的创建时间。
  7. 第七列:文件名或目录名。

第一列就是权限信息了,共有11个字符,分别表示:

  • 第1个字符:文件具体类型
  • 第2~4个字符:所有者权限(读、写、执行)
  • 第5~7个字符:所属组权限(读、写、执行)
  • 第8~10个字符:其他人权限(读、写、执行)
  • 第11个字符:受 SELinux 的安全规则管理(暂不了解)

以如上的一条记录为例:

-rw-r--r-- 1 root root 2219 Jun 16 01:57 000-default.conf

其所有者root权限为rw-,也就是可读可写不可执行,其他同理~

SetUID(SUID)

上述提到的s权限就是SUID

SUID仅用于可执行文件,,所具有的功能是,只要用户对设有 SUID 的文件有执行权限,那么当用户执行此文件时(用户需要拥有可执行权限),会以文件所有者的身份去执行此文件,一旦文件执行结束,身份的切换也随之消失。

举个栗子:

Linux 系统中所有用户的密码数据都记录在 /etc/shadow 这个文件中,但我们查看shadow文件,发现其所有者为root,并且其他用户没有任何读写权限,那么普通用户怎么修改登录口令呢?

[06/18/21]seed@VM:/etc$ ls -al shadow
-rw-r----- 1 root shadow 1620 Apr 16 23:01 shadow

然后我们查看passwd命令,发现其含有SUID位,所以普通用户执行时就会获得root权限,从而修改shadow文件。

[06/18/21]seed@VM:/etc$ ls -al /usr/bin/passwd 
-rwsr-xr-x 1 root root 53128 Mar 29  2016 /usr/bin/passwd

我们再查看cat命令

[06/18/21]seed@VM:/etc$ ls -al /bin/cat 
-rwxr-xr-x 1 root root 51036 Feb 18  2016 /bin/cat

发现其并没有SUID位,如果使用cat命令查看shadow文件,就无法读取。

Rpu2rt.png

设置SetUID为的命令(更多可以参考chmod命令:Linux chmod 命令 | 菜鸟教程 (runoob.com)):

chmod u-s filename	//去除SUID位
chmod u+s filename	//添加SUID位

总结一下要点:

  • 只有可执行文件才能设定 SetUID 权限,对目录设定 SUID,是无效的。
  • 用户要对该文件拥有 x(执行)权限。
  • 用户在执行该文件时,会以文件所有者的身份执行。
  • SetUID 权限只在文件执行过程中有效,一旦执行完毕,身份的切换也随之消失。

Sticky BIT(SBIT)

Sticky BIT,简称 SBIT 特殊权限,可意为粘着位、粘滞位、防删除位等。SBIT 权限仅对目录有效,一旦目录设定了 SBIT 权限,则用户在此目录下创建的文件或目录,就只有自己和 root 才有权利修改或删除该文件。SBIT会占用其他人身份的权限设定中 的x权限位(t),并且T代表可执行权限开启,t代表可执行权限关闭。

比如说Linux系统中存放临时文件的tmp目录

RELnrF.png

可以看到其t置位了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值