如果您查看命令的权限集passwd,您将看到以下内容:
user@apple:~$ ls -l /bin/passwd
-rwsr-xr-x 1 root root 59976 Nov 24 2022 /bin/passwd
Run Code Online (Sandbox Code Playgroud)
/bin/passwd已设置 SUID 位且其所有者是root用户。这意味着运行该命令passwd将以用户的权限运行该命令root。
鉴于passwd已经拥有root用户权限,为什么当我尝试更改另一个用户的密码时会这样说test:
user@apple:~$ passwd test
passwd: You may not view or modify password information for test.
Run Code Online (Sandbox Code Playgroud)
运行相同的命令,但使用sudo,让我可以更改密码。这是为什么?