![为什么 `sudo passwd root` 会重置我的 root 密码?这是否存在安全风险?](https://linux22.com/image/830559/%E4%B8%BA%E4%BB%80%E4%B9%88%20%60sudo%20passwd%20root%60%20%E4%BC%9A%E9%87%8D%E7%BD%AE%E6%88%91%E7%9A%84%20root%20%E5%AF%86%E7%A0%81%EF%BC%9F%E8%BF%99%E6%98%AF%E5%90%A6%E5%AD%98%E5%9C%A8%E5%AE%89%E5%85%A8%E9%A3%8E%E9%99%A9%EF%BC%9F.png)
在我的 ubuntu 桌面主机和虚拟机中都是这样。我已经大约一个月没有以 root 身份登录了,在此期间我升级了内核。我发现我的 root 密码不再起作用了。但是,通过使用 sudo passwd root
,我可以轻松地通过当前用户密码重置 root 密码。这是怎么发生的?我不再有问题了,只是好奇这背后的原因。谢谢!
答案1
首先,sudo
以 root 身份执行命令,从而重置实际的 root 密码首先以 root 身份访问通常不是问题。您已经通过 获得了 root 访问权限sudo
,因此几乎没有变化。(这假设您没有限制用户命令但允许他们执行命令的设置sudo passwd
...但这是一个配置问题。)
其次,为了通过使用 远程渗透 PC sudo passwd
,您必须 a) 以某种方式诱骗用户向您提供用户密码(同样,这也同样可以提供sudo
访问权限),或 b) 对机器进行物理访问,在这种情况下“远程”可能不再那么真实。
所以,没有直接的安全风险。某些(但不常见且不合逻辑的)配置可能会造成漏洞,但仅此而已。
答案2
不,这不是安全问题。如果您能够以 root 身份运行 sudo 命令(Ubuntu 中的用户通常都是这样做的),那就没问题了。sudo 背后的想法是,您可以以 root 身份运行命令,而无需以 root 身份登录。
不是安全问题。没什么不寻常的。系统运行正常。没什么可看的。
答案3
这不是什么大问题,您的用户已被授予root身份。您可以创建一个未被授予root身份的用户。
查看帐户类型,管理员可以使用 sudo 成为 root。
行政人员:
标准:
/etc/sudoers
但它究竟是如何工作的呢?我们可以在(以 root 身份打开)找到答案。你会看到
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
# Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL
这意味着只有 sudo 和 admin 成员可以使用 sudo 来获得比普通用户更多的权限。
您可能还想检查/etc/group
(以 root 身份打开它)以了解这些组中的人。
答案4
sudo
以当前登录用户以外的用户身份运行命令。通常,您会使用它以 root 身份运行程序,但您也可以以其他用户身份运行程序。
所以sudo passwd root
告诉系统更改 root 密码,并像您是 root 一样进行操作。root用户可以更改root用户的密码,因此密码更改。系统按设计运行。
这个谜题中缺失的一块是不是每个人都可以使用 sudo
。事实上,sudo
默认情况下,只有一组用户被允许这样做。您在安装系统时创建的用户会自动放入该组中,但您可以创建不属于该组的用户。如果您真的愿意,您甚至可以将自己从该组中移除。您甚至可以设置,sudo
以便某些用户(或用户组)只允许执行某些特定操作。
话虽如此,你的第一个用户是允许以 root 身份执行任何操作。这就是为什么sudo
要求你输入密码进入您帐户的攻击者不需要 root 密码来执行 root 操作,但仍需要你的密码即可完成这些攻击。许多攻击实际上并不会向攻击者透露您的密码,因此sudo
仍然可以限制这些攻击可能造成的损害。