我正在通过 ssh 执行此操作。
我想创建一个用户:
无法通过ssh访问
可以被冒充
su
没有密码(这是一个好习惯吗?)
可以运行 Web 应用程序(特别是使用 pm2 (nodejs))
这就是我们在工作中的做法——我通过 ssh(pem 密钥)访问服务器,然后 su 到用户nodejs
并运行应用程序。我在这里阅读了一些答案,但它们通常采用“我创建了一个用户但它不起作用,出了什么问题”的形式
我创建了一个用户,adduser nodejs --system --group
但它的密码我不知道。也许我只需要在该命令中添加一些内容。
操作系统是Mint/Ubuntu。
答案1
默认情况下,大多数 Linux 发行版不会为新用户设置密码,而是在禁用密码身份验证的情况下创建密码。该帐户不会从外部显示为已禁用 - 您仍然会收到提示。但没有密码是行不通的。
如果您设置了密码,知道该密码的人将能够通过 ssh 访问该密码。但是,如果您的系统sudo
安装了该软件包并且您的帐户位于该wheel
组中,或者 sudo 已被专门配置为允许您的帐户切换到该用户,则您不需要设置密码即可切换到该帐户。
假设 sudo 配置为允许您更改为该用户并运行任何命令,
sudo -u nodejs -H -s -i
将提示您输入您的凭据(我认为是您的密码),成功输入后,将使用目标用户的登录 shell 登录到帐户。(-i 表示使 shell 成为目标用户的登录 shell。)
如果您的帐户未配置为允许您使用 sudo 切换到该用户并运行任何命令,则如何配置它是一个单独且更大的问题。但在问这个问题之前,请阅读 sudo 和 sudoers 联机帮助页 ( man sudo sudoers
)