我想了解该su
命令的内部工作原理。
假设我做了以下事情:
su someUser
我认为将会发生以下情况:
su
会询问我的密码someUser
。su
将对输入的密码进行哈希处理。su
会将输入的密码与文件中的密码进行比较/etc/shadow
,如果两个密码相同,则将su
启动默认 shellsomeUser
(存在于/etc/passwd
),并将su
启动的 shell 的用户 ID 和组 ID 设置为该用户的 ID 和组 IDsomeUser
。
请注意,su
已setuid
设置位,因此su
将以 root 权限运行。
我对么?
答案1
su 在大多数 Linux 发行版中不执行任何密码操作。相反,它将 authn/authz 委托给聚丙烯酰胺并且只处理用户更改。