2007年3月24日 星期六

在Linux底下,要建立使用者當然是使用#useradd指令,簡單且完整的指令為#useradd -m -p encryptedPASSWORD username,這裡有個重點,就是選項-p後接著的是已加密過的密碼,所以需要另外使用指令來加密我們輸入的明碼,例如$perl -e 'print crypt ("password","testword"),"n"' ,這條指令可以給我們一個加密過的password,然後設法帶入-p後面就可以了,為了完整一點,我們將password這個問題再寫清楚一點,例如在命令列下我們鍵入:
$password=testword
$pass=$(perl -e 'print crypt($ARGV[0], "password")' $password)
$echo $pass
這樣我們可以得到更確實的利用,接下來我們可以考慮寫成shell script來執行,如下:
#vi adduser.sh
#!/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)
/usr/sbin/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

以上adduser.sh需要root執行,我們就可看到互動且詢問式的輸入新增使用者和password了。