Linux - 如何管理 root 的密码?

Jon*_*oux 5 linux ssh redhat root

我们刚刚部署了几个 Linux 服务器。每个系统管理员都将在服务器上拥有自己的帐户(即:jsmith),并将使用 SSH 与证书进行连接,该证书将放入其主目录中的“authorized_keys”文件中。一旦连接到服务器,如果他们想发出提升的命令,他们会这样做:

sudo ifconfig
Run Code Online (Sandbox Code Playgroud)

然后他们将输入 root 密码。

我现在想知道的是管理该 root 密码的最佳实践。我应该定期更换吗?我如何与系统管理员共享新密码?

**当然我会在 SSH 中禁用 root 登录。

sam*_*mir 24

如果他们使用 sudo,那么它会询问他们的密码而不是 root 密码,因此不需要更改 root 密码。只要确保在 /etc/sudoers 文件中给他们适当的权限。

  • 除非 sudo 已经配置了“targetpw”选项 - 如果是,那么将需要目标用户的密码。 (5认同)
  • @samir,如果 sudo 用于审计而不是允许轻松访问,则通常使用 targetpw 选项。拥有该选项可确保只有具有 root 访问权限的人才能使用 sudo,并且通常在限制“su”的使用时实施。人们总是可以执行“sudo su”,但这会被记录(并在远程记录的情况下立即发送)。那有意义吗? (3认同)
  • @FrandsHansen 不知道 targetpw 选项。有趣的“功能” (2认同)

vag*_*wal 6

使用 sudo 时,您无需担心 root 密码。也许,我会建议通过发出禁用 root 密码

sudo passwd -l root
Run Code Online (Sandbox Code Playgroud)

不过,在此之前,请确保您拥有具有所有权限的相关系统用户。

您始终可以通过发出来获得 root 控制台

sudo -i
Run Code Online (Sandbox Code Playgroud)

以下是我用来配置服务器的小脚本。

#!/bin/bash

set -e

addgroup sysadmin
adduser newuser
usermod -a -G sysadmin newuser
chmod u+w /etc/sudoers
echo "\n# Added by <YOUR-NAME>\n%sysadmin ALL=(ALL) ALL" >> /etc/sudoers
chmod u-w /etc/sudoers
su newuser -c "mkdir /home/newuser/.ssh"
su newuser -c "chmod 0700 /home/newuser/.ssh"
su newuser -c 'echo "<YOUR-SSH-KEY>" >> /home/newuser/.ssh/authorized_keys'
su newuser -c "chmod 0644 /home/newuser/.ssh/authorized_keys"
Run Code Online (Sandbox Code Playgroud)

您可以根据自己的需要进行修改。使其具有交互性,使用用户变量等:)

享受!

  • 您的脚本似乎不起作用。是“newuser”还是“tempuser”? (2认同)