添加无密码但未禁用的新用户

添加无密码但未禁用的新用户

我需要添加只能通过 SSH 使用的新用户。添加用户时,它们会被添加到影子文件中,并带有感叹号 ( !) 而不是星号 ( *),因此它们被“禁用”,并且 sshd 不允许使用它们。

有没有办法添加默认启用的没有密码的用户?

我尝试过使用 busybox 的 adduser 命令,它用!.同样,Gentoo 的默认 useradd 命令将使用!.

答案1

看起来我可以指定加密密码来添加用户

useradd -p '*' testuser

它以前不起作用,因为我忘记了当我丢失单引号时 shell 试图扩展星号。

看来我也可以使用

usermod -p '*' testuser

对现有用户也将密码设置为星号。

答案2

在 alpine 和其他基于 busybox 的发行版上,其adduser行为类似,您可以使用不保留的随机密码创建一个帐户。

为此,请生成密码/dev/urandom并将其转换为文本base64,然后回显两次,将其通过管道传输到 adduser 命令(不带标志-D),以便在用户创建期间输入并确认密码。

pw="$(head -c 20 /dev/urandom | base64 | head -c 10)"
( echo "$pw"; echo "$pw" ) | adduser foo

另一种选择是在创建用户后将文件中的替换为!a 。*/etc/shadow

adduser -D foo
sed -i -e "s/^foo:!:/foo:*:/" /etc/shadow

相关内容