创建一个可以使用 sudo 的新用户?

创建一个可以使用 sudo 的新用户?

AWS 文档建议我不要以 root 身份访问服务器,而是创建一个新用户,并使用此标志在不使用密码的情况下执行此操作:

--disabled-password

我现在需要运行 sudo 命令来安装 nginx。

  1. 我如何运行 sudo 命令,它一直要求输入密码,但密码并未设置。每次我需要使用 sudo 命令时,我是否需要以 root 用户身份登录?

  2. 如果我允许新用户帐户具有 sudo 访问权限 - 出于安全原因,这是否不会消除从根帐户中分离帐户的全部意义?

答案1

该文件/etc/sudoers列出了具有 root 访问权限的所有用户。您可能在文件本身或目录中的任何文件中看到类似这样的一行/etc/sudoers.d

username ALL=(ALL) ALL

而不是ALL,可能会有一些限制,例如最后一个ALL替换为/usr/bin/apt-get或类似内容,以便您只能通过 sudo 执行此命令。该文件本身有很好的文档记录。

为了让用户无需密码即可执行 sudo 命令,只需NOPASSWD在行中添加:

username ALL=(ALL) NOPASSWD: ALL

是的,这比仅root通过 ssh 访问用户更安全。通常,永远不要以 root 身份登录,也不要通过 ssh 使用密码登录,而是使用公钥身份验证。有关更多信息,请查看此答案:为什么通过 SSH 进行 root 登录如此糟糕以至于每个人都建议禁用它?

答案2

无论您使用哪种 Linux 发行版,Aws 都会向默认用户提供 sudo 访问权限。例如,Ubuntu 实例的默认用户为 ubuntu,Amazon Linux 发行版的默认用户为 ec2-user,Centos/Redhat 的默认用户为 root/ec2_user

您所需要的只是用于安装的正确命令。以下是以默认用户身份安装的命令。

  1. 乌班图 -->>sudo apt-get install nginx
  2. 亚马逊 Linux -->>sudo yum install -y nginx
  3. Centos/Redhat -->>sudo yum install -y nginx

您可以使用命令添加新用户useradd。这很简单,但是您需要为该用户生成 RSA 密钥对并将其添加到.ssh/authorized_keys远程主机上用户主目录中的文件中。

对于 sudo 权限,您需要添加您的用户/etc/sudoers文件条目,如下所示。

username ALL=(ALL) ALL

但要编辑/etc/sudoers文件,您需要是默认用户或 root 用户。您应该这样做。以默认用户身份登录并使用以下命令编辑文件sudo nano /etc/sudoers

相关内容