sudo su - root 与 sudo su - 之间的区别

sudo su - root 与 sudo su - 之间的区别

我知道“sudo su - ”或 sudo 是如何工作的。但不确定为什么在 sudo wave 之后,我无法使用“sudo su -”以 root 身份登录,而使用“sudo su - root”却可以。区别在哪里?

顺便说一句。Ldap 已实现 - 是因为这个吗?

答案1

我想知道

sudo su

完全等同于

sudo -s

或者更像是

sudo sa

尽管看起来系统管理员的 sa 不再默认包含在 ubuntu 版本中(apt install acct),所以我想我是出于逻辑考虑。实际上,我想我用“sa”来显示我的年龄,但我从未使用过它,因为当时“su”是一种更直接的方法。

直接执行“su”是不可能的,因为您需要 root 密码,但该帐户默认是被禁用的。

拥有具有访问权限的不同用户会增加安全性,然后黑客必须猜测用户名和密码,但您可以添加回 root,并禁用仍然未知的帐户的 sudoers,使用双重密码和未知用户名会更安全。

启用方法如下

sudo su
passwd root
passwd -u root

并再次禁用或锁定根目录

passwd -l root

您会看到提示路径中的差异没有改变为波浪号(又名用户的主目录)与刚刚执行 su 的用户的完整 /home/user 路径,因此可能不如 sudo su 或 sudo -s 更可取。

实际上,root 仍然不能默认使用 SSH 直接登录,因此如果您最终禁用 sudoers 的原始登录帐户,则可以增加安全性。

这可能是最干净、最安全的做法,即从组 sudo 中删除一个用户。(显然,由于您已 su 为 root,因此最好不需要在前缀中添加 sudo)。

gpasswd -d username sudo

如果您还将密码长度加倍(针对两个帐户),而不是明显可猜测的简单加倍,例如 16 个字符,那么它就相当安全了。实际上,到目前为止,这可能仍然不正确,因为 man crypt 显示“通过取密钥前八个字符中每个字符的最低 7 位,可获得 56 位密钥。”可能仍然只使用前 8 个字符,我的测试表明并非如此,所以也许这是关于密码长度的另一个好问题。

是的,从组中删除后,您仍然可以从 ssh 登录用户 su 。

MasterJames 每天为很多事情给出的教训是: 老派的总是更好,改变完美是正常的,但这并不意味着正确。

与以前不同的是,您无法直接通过 SSH 连接到 root。如果 FTP 不那么安全,那么无论如何都不要使用它。请使用 rsync 而不是 SSH 等。

最后要注意的是,如果您想在自动 shell 等中生成密码文件影子加密字符串,请尝试此链接获取更多信息。https://unix.stackexchange.com/questions/81240/manually-generate-password-for-etc-shadow 有很多方法,但这是最简单的。(如果在命令行上避免添加到历史记录中,请先输入一个空格)。

 echo "root:newword1" | chpasswd

实际上这看起来更像是影子文件。

 python3 -c "from crypt import *; print('\n'+crypt('mypassword123', METHOD_SHA512));" | sed '/^$/d'

答案2

sudo su - 表示以 sudo 身份运行命令 su,也就是以 root 身份运行。由于您是 sudoer,因此系统会要求您输入密码。因此,当您提供密码时,您现在正在使用 root 权限,因此当您现在运行 su 时,您正在使用 root 权限,因此您不需要任何密码。这就像如果您是 root,那么对任何其他用户执行 su 操作都不会要求输入密码,因为您是 root。

当您仅运行命令 su 时,系统并不会将您视为 sudo,而是将您视为普通用户,它会要求输入 root 密码,因为 su 意味着切换到 root 用户。

问候,

相关内容