Linux /etc/shadow 密码修改安全

信息安全 密码 linux Unix
2021-09-09 05:06:00

我想知道当我在 Linux 系统上更改密码时会发生什么。正如我记得的那样,基本上所有密码都存储在一个名为/etc/shadow或类似 BSD 的系统中。/etc/master.passwd它们都由具有 600 权限的 root/wheel 拥有。

因此,当我passwd在终端中使用命令更改密码时,它应该以某种方式以 root 权限访问此文件。然后对其进行读写。

我对它如何获得 root 权限以及哪个进程(或哪些进程)负责密码更改感兴趣。

1个回答

基本上它使用的是 suid 位。如果您检查机器中的 passwd 命令:

-rwsr-xr-x  1 root   root         43K Feb 15  2011 passwd

SUID(在执行时设置所有者用户 ID)是赋予文件的一种特殊类型的文件权限。通常在 Linux/Unix 中,当程序运行时,它会从登录用户那里继承访问权限。SUID 被定义为授予用户以文件所有者的权限运行程序/文件的临时权限,而不是运行它的用户。简而言之,用户在执行二进制文件时将获得文件所有者的权限以及所有者 UID 和 GID。因此,当您运行二进制文件时,它实际上是以 root 身份运行的。