Linux之特殊权限

特殊权限(基于执行权的)

1、suid 设置用户编号

只针对文件

suid 作用:给一个执行文件设置该权限后,任何能够执行该文件的

用户都以该文件拥有者的身份去运行

设置完毕后所属组位置的x会被替换为s,若s小写则表示所属人的执行权限还在,

若S大写则表示所属人的执行权限不在

例子:/usr/bin/passwd文件的权限是-rwsr-xr-x,普通用户(other)对该文件无w权限,但因为有x权限,且具有suid的特殊权限,所以以该文件拥有者(root)的身份去运行,在运行该文件过程中拥有root账户的权限,从而可以实现修改密码

设置方法

chmod u+s 文件路径

-rwxr-xr-x. 1 root root 2289656 Jun 10 2014 /usr/bin/vim

扫描二维码关注公众号,回复: 4185155 查看本文章

注:SetUID很危险,如果把vim命令设置了SUID,那么普通用户就可以用vim修改系统所有配置文件,比如把/etc/passwd文件中自己的用户分类修改成0(超级用户)。

2、Sgid 设置组编号

针对文件时:

给一个执行文件设置该权限后,任何能够执行此文件的

用户都以该文件的属组的身份去

运行

设置完毕后所属组位置的x会被替换为s,若s小写则表示所属人的执行权限还在,若S大写则表示所属人的执行权限不在

针对目录时:

权限的继承,给目录设置sgid权限后

任何人在此目录下

创建内容,内容的属组与该目录所属组一致,

设置完毕后所属组位置的x会被替换为s,若s小写则表示所属人的执行权限还在, 若S大写则表示所属人的执行权限不在

设置方法

chmod g+s 路径 /share

设置完毕后所属组位置的x会被替换为s,若s小写则表示所属人的执行权限还在,

若S大写则表示所属人的执行权限不在

例子: 在/tmp 目录下新建一个目录,设置sgid 权限后,新建用户,在/tmp目录中新建目录,查看权限

3、sbit 对权限的收缩

只对目录有效,一旦设定,那么该目录中存放的内容只能被内容的所属人删除,也就是说用户在该目录下只能删除属于自己的文件

设置方法

chmod o+t 目录路径

设置完毕后其他人位置的x会被替换为t,若t小写则表示所属人的执行权限还在,

若T大写则表示所属人的执行权限不在

SUID/SGID/SBIT权限设置

有两种方式,一种是以字符,一种是以数字。

特殊权限 数字表达 权限设置方法

suid 4

sgid 2

sbit 1

下面我们就来看看如何设置,并看看达到的效果。

先看SUID的作用及设置

ls -l /usr/bin/vim

-rwxr-xr-x. 1 root root 2289656 Jun 10 2014 /usr/bin/vim 是一个二进制文件

讲vim 命令赋予 suid 权限

chmod u+s /usr/bin/vim

-rwsr-xr-x. 1 root root 2289656 Jun 10 2014 /usr/bin/vim

我们使用 vim 直接编辑我们的/etc/passwd 这个存放用户信息的文件,看看其他用户能否编辑(在不设置suid 的情况下肯定其他用户是不可以编辑的)

su - hjk

vim /etc/passwd

切换到hjk普通用户上,我们可以直接把hjk用户的uid 改为0

那就表示 我们的hjk 用户借用了我们vim 拥有者的root的身份去执行

这样会给我们的系统造成很大的威胁 , 所以 请善用 suid 权限

接着看 sgid 的效果

这里我就直接演示 目录设置sgid 权限的效果

给/tmp 目录设置sgid 权限后,切换用户,在/tmp目录中新建目录,查看权限

ls -ld /tmp

drwx---rwx. 10 root root 4096 Apr 11 22:37 /tmp

任何用户都可以在/tmp 目录下去创建内容

chmod g+s /tmp

ls -ld /tmp

su - hjk

cd /tmp

mkdir test

我们发现 创建的test 目录的所属组 变为了我们 父目录tmp 目录的所属组root

这就表明,我们在此目录下创建内容,我们的root管理员都可以进行管理

最后 我们 看下 sbit 权限的效果

同样 我们还是以 /tmp 目录作为例子 ,设置 sbit 权限

[root@feixiangkeji tmp]# ls -ld /tmp

drwx---rwx. 9 root root 4096 Apr 11 22:51 /tmp

[root@feixiangkeji tmp]# chmod o+t /tmp 设置sbit 权限

[root@feixiangkeji tmp]# ls -ld /tmp

drwx---rwt. 9 root root 4096 Apr 11 22:51 /tmp

su - hjk 切换到 hjk 普通用户上

mkdir /tmp/test

ls -ld/tmp/test

drwxrwxr-x 2 hjk hjk 4096 Apr 11 22:54 test

su - test 切换到 test 普通用户上

mkdir /tmp/hjk

ls -ld /tmp/hjk

drwxrwxr-x 2 test test 4096 Apr 11 22:57 hjk

看看是否可以删除 hjk 用户的test 目录

rm -rf test

权限拒绝

那么 ,我们就可以得到结论,任何用户在设置sbit 的目录下创建的内容只能自己和root 超级管理员可以管理,其他用户没有权限管理!

ok ,那我们 标准的共享目录的权限 就是 3777 (sgid + sbit )

装载自:https://baijiahao.baidu.com/s?id=1597532383959518765&wfr=spider&for=pc

猜你喜欢

转载自blog.csdn.net/qq_40691051/article/details/81170956