简单聊 SUID

权限概念

首先我们需要知道,SUID 是什么?SUID 是 Set User ID 的意思。

那它们又有什么作用呢?在 Linux 系统中我们通常使用权限来限制一个文件,例如 r–是只读,rw-是读写等等。一般这些权限我们用来限制普通文件,还有一种文件叫做程序,这种文件在执行时,会调用其它的文件,如果其它文件所有者并未当前执行程序的用户,那怎么办?

举个例子:cjk 用户需要执行程序 sdf,而程序 sdf 需调用所有者为 lzll 的 bdyjy 文件,这时就需要设置 SUID。添加之后,系统在执行程序时,会以需要调用文件所有者的身份,运行程序。

我们可以通过密码修改这个命令来理解 SUID 使用效果。

权限效果

如图,密码修改命令是 passwd,位于系统的/usr/bin/passwd,我们通过 ls -l 命令查看下它的权限设置,有一个 SUID。我们在修改密码时,它会对/etc/shadow 文件进行读写,也就是需要调用/etc/shadow 这个文件,我们同样通过 ls -l 查看下/etc/shadow 的权限,不难发现这个文件属于 root 所有者:

普通用户对此文件没有任何权限,但是可以使用 passwd 改密码,原理就是当你使用 passwd 命令时,因为 SUID 的效果,相当于使用/etc/shadow 的所有者,也就是 root 身份,对/etc/shadow 文件进行修改:

1
2
3
4
chmod u+s cjk
#添加
chmod u-s cjk
#删除

本文链接:https://my.lmcjl.com/post/19040.html

展开阅读全文

4 评论

留下您的评论.