我需要添加只能通过 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