在 Ubuntu 机器上,如果我运行以下命令:
adduser --system --no-create-home system-user
system-user
我创建一个名为无主目录的系统用户/bin/false
作为 shell。该用户nogroup
默认属于(GID 65534)。我想使用此用户在我的系统上运行守护程序。
但是密码呢?我或其他人可以以某种方式登录到该系统帐户吗?我想可能是密码为空,所以我尝试在Password:
出现提示时按 Enter su system-user
:
$ su system-user
Password:
su: Authentication failure
是因为/bin/false
壳的原因吗?我不知道,因为adduser
手册useradd
没有说明创建系统用户时如何处理系统用户的密码。我能否确定系统中没有人可以以该系统用户身份登录?或者我应该采取其他措施来保护该帐户?我希望只有守护进程才能使用它,而没有其他人......
答案1
该帐户将被设置为无法登录,因为没有为该帐户分配有效密码,这与没有密码不同。
您可以通过执行以下操作来检查这一点 sudo grep -f system-user /etc/shadow
。第二个字段(第一个和第二个冒号 ( :
) 之间)将是“ *
”,并且没有哈希值任何您可以提供的密码将与其匹配。为此,您必须明确设置密码。
除此之外,/bin/false
输入带有密码的帐户不会给您“ Authentication failure
”,它只会立即注销您,而不会发出任何消息(因为您可以通过创建一个临时帐户轻松尝试)和有效的密码)
答案2
您应该首先初始化passwd
您的用户:
$passwd system-user
然后返回两次以创建空白密码。
您可以验证文件中没有 passwd /etc/shadows
(第二个字段应该为空)。但是,是的,即使没有任何外壳,该帐户也不会受到保护$HOME
。所有拥有 sudo 帐户的用户都可以使用它。