/etc/shadow - 当它是只读的时候如何编辑它

/etc/shadow - 当它是只读的时候如何编辑它

我正在尝试更改 /etc/shadow 文件的内容,但意识到它是只读的

sghk1> ls -l /etc/shadow
-r--------   1 root     sys         4045 Aug 19 16:13 /etc/shadow

/etc/shadow 文件权限是只读。在这种情况下,/usr/bin/passwd 如何更改其内容?

e.g. passwd -x 30 username

答案1

即使未设置写入标志,Linux/Unix 系统中的 root 用户也可以写入文件。因此,他可以更改文件的内容/etc/shadow或任何其他文件,而不受其权限的限制。

passwd实用程序已设置 setuid 位。请参阅:

ls -la /usr/bin/passwd

它看起来应该是这样的:

-rwsr-xr-x 1 root root 42824 Sep 13  2012 /usr/bin/passwd

注意s文件所有者权限中的 。这表示setuid 位。如果普通用户现在执行该passwd实用程序,则它将以文件所有者的权限执行;在本例中为 root。

setuid 位获得临时提升的权限来运行特定任务,例如更改系统文件中的内容,例如/etc/shadow/etc/passwd

必须小心处理 setuid 位。如果在错误的二进制文件上设置,该机制可用于多个漏洞。想象一下,该/bin/bash实用程序会设置 setuid 位;因此系统中的每个用户都可以启动 root shell!

相关内容