useradd 创建一个没有密码的用户,只能通过 ssh 访问

useradd 创建一个没有密码的用户,只能通过 ssh 访问

我正在编写一个使用该命令自动创建用户的脚本useradd(我需要这个而不是adduser)。

我想以只能使用 ssh 访问的方式创建它(脚本已经在授权密钥中添加了 public_key )。

useradd --system --shell /bin/bash $NEW_USER

该命令允许使用密码登录吗?如果是,我该如何禁用它?

我想要实现的目标类似于这篇文章中描述的--disable-passworduseradd创建无密码用户

答案1

useradd如果您没有为帐户提供该-p选项,则默认情况下会创建一个具有禁用密码的帐户。

man useradd

-p--password密码

加密密码,由 crypt(3) 返回。默认是禁用密码。

顺便说一句,如果您需要禁用现有帐户的密码,您可以运行passwd -l username锁定帐户(即禁用密码)。从man passwd

-l,--lock

锁定指定帐户的密码。此选项通过将密码更改为与可能的加密值不匹配的值来禁用密码(它 !在密码的开头添加 )。

请注意,这不会禁用该帐户。用户仍然可以使用另一个身份验证令牌(例如 SSH 密钥)登录。要禁用该帐户,管理员应使用usermod --expiredate 1(这会将帐户的到期日期设置为 1970 年 1 月 2 日)。

密码被锁定的用户不允许更改密码。

事实上,它只是使密码无效而不是删除它,从而允许稍后使用 解锁密码passwd -u,而系统管理员不需要知道原始密码是什么或将其设置为某个“默认”密码(可能不安全,可能众所周知) :

-u,--unlock

解锁指定帐户的密码。此选项通过将密码更改回之前的值(使用该-l选项之前的值)来重新启用密码。

即它删除了!通过选项添加到加密密码开头的内容-l

相关内容