我正在使用 Red Hat Enterprise Linux,详细信息如下:
uname -a
3.10.0-327.22.2.e17.x86_64
当我检查影子文件的权限时,我看到以下内容:
ls -l /etc/shadow
----------. 1 root root 1467 /etc/shadow
我很惊讶地看到这些权限。我认为“passwd”至少需要所有者的读/写权限才能更新此文件。知道这是怎么回事吗?
答案1
这很正常。
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
#
更多信息请访问Stackexchange“‘passwd’命令如何获得 root 用户权限?”如果你想要的话。