有時候在初始化shell腳本中但願能順便建立用戶並指定密碼,使用useradd命令能夠達到該效果:html
useradd -m -p encryptedPassword username
參數說明:shell
使用perl的crypt()方法便可加密明文密碼,示例以下:bash
$ perl -e 'print crypt("password", "salt"),"\n"'
輸出以下:加密
sa3tHJ3/KuYvI
對於useradd命令須要用到的加密密碼,使用'password'做爲鹽,具體語法以下:code
$ password="1YelloDog@" $ pass=$(perl -e 'print crypt($ARGV[0], "password")' $password) $ echo $pass paU5t8Al/qf6M
示例shell腳本用於建立用戶:htm
adduser.ship
#!/bin/bash # Script to add a user to Linux system if [ $(id -u) -eq 0 ]; then read -p "Enter username : " username read -s -p "Enter password : " password egrep "^$username" /etc/passwd >/dev/null if [ $? -eq 0 ]; then echo "$username exists!" exit 1 else pass=$(perl -e 'print crypt($ARGV[0], "password")' $password) useradd -m -p $pass $username [ $? -eq 0 ] && echo "User has been added to system!" || echo "Failed to add a user!" fi else echo "Only root may add a user to the system" exit 2 fi
在root用戶下執行該腳本:ci
# ./adduser.sh Enter username : roja Enter password : HIDDEN User has been added to system!
... #若是是生產環境,爲了防止明文密碼泄露,能夠對shell腳本進行加密 password="py@123" username="py" pass=$(perl -e 'print crypt($ARGV[0], "password")' $password) useradd -m -p $pass $username ...
參考連接:it
https://www.cyberciti.biz/tips/howto-write-shell-script-to-add-user.htmlclass