linux - linux passwd 命令如何确保它无法从非特权帐户修改其他用户的密码

标签 linux permissions passwd

我知道,passwd 设置了 setuid 位,因此它可以修改 root 拥有的 /etc/shadow 文件。

[~]$ ls -l `which passwd`
-rwsr-xr-x. 1 root root 27832 Jan 29  2014 /usr/bin/passwd

但它如何确保以非 root 用户身份登录时只能修改当前帐户的密码。

最佳答案

通过 geteuid() 和类似方法可以获得其他 UID/GID 值。有效 UID 是启动该程序的任何用户的 UID。 setuid 权限的所有用途都是将运行时凭据更改为有效 UID/GUI 的凭据。然后应用正常权限。

关于linux - linux passwd 命令如何确保它无法从非特权帐户修改其他用户的密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31197259/

相关文章:

linux - 使用gunzip计算一个字符串的crc32码

linux - 为什么 "expr $n - 1"有效,而 "expr $n -1"无效?

linux - 如何编写shell脚本在系统登录时运行程序?

linux - 由于盐值是随机的,密码管理器如何重新检查密码?

linux - 在 docker 容器上持久化/etc/passwd

linux - 在 bash shell 脚本中是否有通常用于比较时间的命令?

Javascript 权限被拒绝 - 不同的端口

permissions - 尝试安装 Rails 3.0.3 时,PATH 中不安全的世界可写目录/usr/local

facebook api电子邮件权限

bash - 如何以非交互方式运行 "sudo passwd username"