Linux passwd 用户权限更改

Linux passwd 用户权限更改

当我看着

usr/bin/

目录中,我看到带有 passwd 的命令行

-rwsr-xr-x. 1 root root 30768 2012-02-22 20:48 /usr/bin/passwd

并且它允许更改以获得root权限。与 s。

我想知道只有 root 可能可以更改其他用户的密码

passwd   user

我想找到这个命令的位置并查找它。

该命令也是 usr/bin/ 目录的一部分吗?或者是别的东西

我想做的是。

我登录

user1

并输入

[user1] passwd user2

当然它在某种程度上被阻止了。但我想了解更多。

答案1

Unix(和Linux)有这样的概念真实的用户和有效的用户。 setuid 程序,例如/usr/bin/passwd将有效用户设置为文件的所有者;在本例中,它将有效用户设置为root

现在,程序如何使用这些提升的权限取决于程序本身。

就该程序而言passwd,如果您传递用户名,那么它将检查是否真实的用户是root;如果是则成功,否则返回错误。

因此root用户可以运行/usr/bin/password user2并且这将起作用,但是如果user运行相同的命令则会失败。只有一个程序,但它的工作方式会根据运行它的用户而变化。

答案2

passwd二进制文件是 suid,因为它需要 root 权限才能修改该/etc/shadow文件。它不允许非特权用户修改其他用户的密码。它将允许root修改任何用户的密码,但这不是它是 suid 的原因。

相关内容