
當我發出以下命令時,我想在特定群組中建立一個新使用者。
sudo ./create_user.sh "test" "firstname lastname"
該create_user.sh
腳本如下所示。
#!bin/bash
#sudo adduser --gecos "$2" --ingroup testgroup $1
然而,問題是,我必須避免使用此處文件插入密碼(應該只是測試),但我不知道語法。
我嘗試了一些解決方案,但似乎都不起作用。
這就是我在腳本中嘗試的heredocument的樣子
#<< EOF
#test
#test
#EOF
我的輸出看起來像這樣
#adding user 'test' ...
#adding new user 'test' <1003> with group 'testgroup' ...
#Enter new UNIX password:
答案1
adduser
呼叫該passwd
實用程式來設定密碼。與許多提示輸入密碼的程式一樣,passwd
它堅持其輸出來自終端。因此,您無法透過此處文件傳遞輸入 - 建立臨時文件或管道,但passwd
兩者都不接受。
如果您不想使用密碼登錄,adduser
(至少是 Debian 版本)該您可以忽略沒有傳遞密碼雜湊(不是密碼本身)的選項,但Linux 影子密碼實用程式套件有。--disabled-password
adduser
useradd
如果您想在建立帳戶期間輸入密碼,請確保passwd
從終端機讀取密碼。如果您從其他來源(例如 Web 表單)取得密碼,請passwd
從預計腳本 - 例子。
如果這是使用此處文件的練習,則密碼不是您應該使用的地方。我沒有看到這裡的文檔可以解決您發布的內容中的任何問題。