Users

添加沒有密碼但未禁用的新使用者

  • July 8, 2021

我需要添加只能通過 SSH 使用的新使用者。添加使用者時,它們會以驚嘆號 ( !) 而不是星號 ( *) 添加到影子文件中,因此它們被“禁用”並且 sshd 不允許使用它們。

有沒有辦法添加預設啟用的沒有密碼的使用者?

我試過使用busybox的adduser命令,它用!. 同樣,Gentoo 的預設 useradd 命令會添加一個!.

看起來我可以指定加密密碼來添加使用者

useradd -p '*' testuser

它以前不起作用,因為我忘記了當我缺少單引號時外殼試圖擴展星號。

看起來我也可以使用

usermod -p '*' testuser

在現有使用者上也將密碼設置為星號。

在 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

引用自:https://unix.stackexchange.com/questions/545918