Bash
通過 bash 腳本添加使用者帳戶的正確方法
我將這個問題交叉發佈到AskUbuntu,因為我的問題在 Debian/Ubuntu 上似乎最為嚴重,但有人建議我在這裡提問。解決此問題的任何建議方法都應該適用於大多數發行版(例如,openSuse 和 Ubuntu)。這是我現在使用的腳本程式碼:
getent group $MYGROUP if [ $? -ne 0 ] ; then sudo su -c "groupadd $MYGROUP" fi sudo su -c "useradd mynewuser -p mypassword -m -g $PRIMARYGRP -G $MYGROUP"
它在 Ubuntu 上創建的使用者帳戶存在幾個問題。
- 未設置終端提示(不
echo $PS1
返回任何內容)- 箭頭鍵和 Tab 鍵在終端中無法正常工作
- 密碼似乎不起作用(儘管我仍然不清楚這個問題到底是什麼)
- 不尊重為該新使用者設置的 /etc/sudoers 權限
相反,如果我使用(而不是 useradd)手動創建使用者,
adduser
我沒有這些問題。但是我需要一個非 Debian 專有的腳本或通過我的 bash 腳本添加使用者帳戶的方法。我之前也有關於這個主題的問題,但它與這個問題無關。
問題在於 Debian 上新使用者的預設 shell,
/bin/sh
因此您習慣使用的大多數功能bash
都不存在。嘗試添加-s /bin/bash
到您的useradd
命令。您還可以通過編輯永久更改預設外殼
/etc/default/useradd
。編輯:
自動修改密碼的解決方案(由 MountainX 發現)在這裡
游標鍵和提示問題聽起來像是骨架文件沒有正確複製。新使用者的主目錄是否有
.bashrc
?至於密碼,
man useradd
在 Slack 上告訴我-p, –password PASSWORD 加密的密碼,由 crypt(3) 返回。預設是禁用密碼。
所以你可能不應該把明文密碼放在那裡。不過,我現在找不到手動呼叫 crypt 的便捷方法,所以也許你需要額外呼叫
sudo passwd $mynewuser
.