2011-10-22 46 views
1

如何使用useradd或類似的命令將用戶添加到Linux bash腳本中。如何使用useradd或類似命令添加用戶?

還複製位於/etc/skel/的啓動腳本,並更改​​您添加的用戶的密碼。

user1=$1 
read -p "Enter your home name" home_name 
read -p "Enter your login shell" loginshell 
echo "$user1:x:500:500:$user1:/home/$home_name:$loginshell" >> /etc/passwd 
echo "$user1:x:500:" >> /etc/group 
mkdir /home/$home_name 
chmod 744 /home/$home_name 
cp -pr /etc/skel/.bashrc /home/$home_name 
echo "$user1: " >> /etc/shadow 
echo "`passwd` $user1" 

的錯誤我已完成了執行這個腳本

passwd: Authentication token manipulation error 

請你能指點我,如果有任何錯誤後?

+1

這從根本上是不安全的。爲什麼要在地球上避免使用標準的,安全的,記錄在案的支持工具?換句話說,你想完成什麼? – tripleee

+0

_「如何在Linux bash腳本中添加用戶」_ ...簡單,只需調用useradd即可。 ... _「用'useradd'或類似的命令輸出。」_說什麼? –

回答

2

你應該解釋爲什麼你想這樣做。在我的觀點中,這是一個壞主意。特別是,因爲它不能很好地處理各種類型的系統(例如,某些Linux系統使用LDAP進行用戶認證等)。

而且我認爲你的行echo "$user1: " >> /etc/shadow是錯誤的。在/ etc/shadow文件的內容中查看(使用sudo),你會明白裏面的條目不僅僅是用戶名後跟冒號。

但是真的,你應該使用useraddadduser來做到這一點。你冒着完全打破你的系統的風險。

1

你應該

passwd $user1 

更換

echo "`passwd` $user1" 

進入第一個密碼。

但是,除了這個問題,你添加所有新用戶具有相同的用戶ID和組ID。所以在技術上沒有新用戶,但有一個用戶有幾個「別名」。在編寫/etc/passwd/etc/group以解決該問題時,您必須更換500

另一個大問題是,用戶的新主目錄和啓動腳本不屬於他,而是屬於他。你可以在某處添加一個chown -R $user1:$user1 /home/$homename

0

對於您正在創建的組,您還應該有類似echo "$user1: " >> /etc/gshadow的內容。與您爲用戶和shadow文件完成的操作相同。

相關問題