我正在编写一个使用该命令自动创建用户的脚本useradd
(我需要这个而不是adduser
)。
我想以只能使用 ssh 访问的方式创建它(脚本已经在授权密钥中添加了 public_key )。
useradd --system --shell /bin/bash $NEW_USER
该命令允许使用密码登录吗?如果是,我该如何禁用它?
我想要实现的目标类似于这篇文章中描述的--disable-password
:useradd
创建无密码用户。
答案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
。