简单聊SUID

我们在学习linux的过程中,会经常接触到suid的概念,这些概念涉及系统安全,所以今天简单说下suid是什么,以及如何使用!

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

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

举个例子:cjk用户需要执行程序sdf,而程序sdf需调用所有者为lzll的bdyjy文件,这时就需要设置suid,通过命令chmod u+s sdf/chmod u-s sdf添加或删除。添加之后,系统在执行程序时,会以需要调用文件所有者的身份,运行程序。

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

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

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

添加suid命令chmod u+s filename。

删除suid命令chmod u-s filename。

 

posted @ 2018-10-30 16:16  莱克时光  阅读(491)  评论(0编辑  收藏  举报