/etc/shadow 上的权限

ssh*_*980 3 permissions files shadow

我正在使用 Red Hat Enterprise Linux,以下是详细信息:

uname -a
3.10.0-327.22.2.e17.x86_64 
Run Code Online (Sandbox Code Playgroud)

当我检查影子文件的权限时,我看到以下内容:

ls -l /etc/shadow
----------. 1 root root 1467 /etc/shadow
Run Code Online (Sandbox Code Playgroud)

看到这些权限我很惊讶。我认为“passwd”至少需要所有者的读/写权限才能更新此文件。知道这里发生了什么吗?

ste*_*eve 5

这是正常的。

passwd 不需要读/写权限,因为它设置了 suid 位,以 root 身份运行。

# ls -l /etc/shadow /usr/bin/passwd
---------- 1 root root   798 Jul 21 21:15 /etc/shadow
-rwsr-xr-x 1 root root 26688 Sep 10  2015 /usr/bin/passwd
#
Run Code Online (Sandbox Code Playgroud)

Stackexchange 上的更多信息“'passwd' 命令如何获得 root 用户权限?” 如果你想要的话。