SetUID Set

2018-06-10  本文已影响0人  spraysss

SetUID 的特性

属性

作用

SetUID 应用场景DEMO

那么这个有SetUID这个有什么用呢,举个栗子,linux可以用它来比较安全的修改自己的密码

修改密码用到的passwd命令使用的是/usr/bin/passwd这个二进制文件。那么我们来瞅一眼这个文件的权限是什么样子的吧

ll /usr/bin/passwd
passwd权限

可以看到所属用户为root,对于其他用户有rx权限,值得注意的是所属用户的权限为rws,这个就是指的是SetUID权限,同时注意s的位置,因为SetUID是针对用户的所以放在用户权限这里。

Linux如何利用SetUID来安全修改密码呢?
首先需要知道Linux密码记录在/etc/shadow中,这个文件没有任何权限,是普通用户无权访问,既然无权访问那普通用户如何修改密码呢?
ll /etc/shadow

shadow权限

因为/usr/bin/passwd对于其他用户有执行权限。所以任何用户都可以执行passwd命令。由于有SetUID属性,当passwd在执行时会获得root用户权限。root用户才不会管这些花里胡哨的权限设定,他想改就改:)~

修改密码步骤如下

通过这种方式就实现了安全修改密码的问题:

用户看不到别人的密码 ,因为没有对密码文件/etc/shadow 的访问权限,但是当passwd验证通过之后,可以获得root用户权限,通过passwd的指令以root的身份更新自己的密码。

添加SUID

chmod 4755 filename

最前面的一个最前面的一个4代表SUID

chmod u+s filename

注意对于没有执行权限的文件加上SUID,是无效的


test

比如我给权限为644 的test文件加上s 属性因为没有任何的执行权限,这个SUID无效,系统以大写的S显示这个无效的SUID

去掉SUID

去掉比较简单也是两种方法

chmod 755 filename

-使用字母方式

chmod u-s filename

TIPS:实际上SUID是比较危险的,不能乱设。比如说root把vim这个指令设置的SUID,那么任何用户在执行vim时都是root用户,那不是可以打开/etc/shadow来修改密码了吗。

上一篇下一篇

猜你喜欢

热点阅读