A. 如何在虛擬機中用shell腳本創建用戶並為他設置密碼,然後把密碼寫入文件中,最後發送給指定pc機
useradd 命令用於創建用戶,passwd 命令用於設置密碼,echo 命令用於輸出密碼到文件,scp 命令用於發送文件。以 tom 用戶為例,為其設置密碼「123456」並發送到172.16.1.3機器的/home/tom目錄:
useradd tom
PASSWD="123456"
echo -e "$PASSWD\n$PASSWD" | passwd tom
echo $PASSWD > passwd_file
scp passwd_file 172.16.1.3:/home/tom
希望對你有幫助。
B. linux腳本創建10個用戶,並制定組,求助
for((i=0;i<10;++i))
do
useradd-groot-s/sbin/nologinuser$i#創建用戶,用戶名user0~user9
su-user$i-c"touch~/test;chmodo-r,o-w,o-x~/test"#創建文件,並取消其他用戶許可權
done
C. 用linux編寫一個添加用戶的腳本
cat "<a href="https://www..com/s?wd=tom&tn=44039180_cpr&fenlei=-CEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">tom</a>:123" > /tmp/user.txt #生成密碼文件,格式「username:password」
useradd <a href="https://www..com/s?wd=tom&tn=44039180_cpr&fenlei=-CEQLGCpyw9Uz4Bmy-bIi4WUvYETgN-" target="_blank" class="-highlight">tom</a> #增加用戶,其它參數按需要添加
chpasswd /tmp/user.txt #設置用戶密碼
rm -f /tmp/user.txt #刪除臨時密碼文件
D. 用shell腳本批量創建30個用戶,用戶名為exam1~exam30,用戶密碼統一為gdlclinux。
寫好了,還在測試,測試好了就給你。
寫好了,通過測試了。
########################################################################
#註:本腳本中使用了函數模塊,以方便修改和調試
#************************************************
# 2011年12月10日 初稿
#************************************************
# 2011年12月11日 測試 問題:密碼修改函數尚未實現
#************************************************
# 2011年12月11日 定稿 密碼修改函數實現
#************************************************
# by [email protected] 12.11.2011
########################################################################
#設置變數
i=1
username=exam
password=gdlclinux
rmso=$(tput rmso)
smso=$(tput smso)
#此處可添加要求輸入用戶名和密碼的項
#錯誤判斷函數
SEA()
{
location=$( which useradd ) #查找useradd的絕對路徑
if [ \( "$location" = "" \) -o \( -s "$location" \) ] #判斷是否找到useradd文件,或著找到的文件為空
then
echo "Useradd was not found,job terminated $smso unsuccessfully$rmso!"
exit
else
if [ -x "$location" ] #若useradd文件存在且不為空,判斷是否具有可執行許可權
then
echo "Command useradd doesn't have excution(x) mode"
exit
else #無法確定問題原因
echo "Script terminated by some unknown problem,Please check it!"
exit
fi
fi
}
#提示信息函數
casemsg()
{
#判斷passwd執行的返回值,並進入case分支
case "$y" in
0) echo "Set password for $smso $username$i$rmso successfully"
;;
1) echo "Permission denied when set password for $smso $username$i$rmso"
exit 1 ;;
2) echo "Invalid combination of options for command passwd"
exit 2 ;;
3) echo "Unexpected failure, nothing done"
exit 3 ;;
4) echo "Unexpected failure, passwd file missing"
exit 4 ;;
5) echo "Passwd file busy, try again"
exit 5 ;;
6) echo "Invalid argument to option"
exit 6 ;;
esac
}
#用戶創建函數
usercreate()
{
useradd -m $username$i #如果需要其他功能,請參照useradd幫助手冊修改此行,如:設置uid
x=$?
}
#密碼修改函數
#這里如果你的系統里有chpasswd這個批修改工具的話,就不用這么麻煩了。
MOVpassword()
{
( echo "$password";sleep 1;echo "$password" )|passwd $username$i #若useradd執行成功,則調用passwd設置密碼
y=$?
}
#主循環
while [ "$i" -ge 1 -a "$i" -le 30 ]
do
usercreate #調用usercreate函數創建用戶
if [ "$x" -eq 0 ] #判斷useradd是否執行成功
then
echo "User $smso $username$i$rmso have been create successfully!"
MOVpassword #調用MOVpassword修改密碼
casemsg #調用casemsg函數
if [ "$y" = 0 ] #如果MOVpassword的返回值為0,則將i加1
then
let i++
fi
else
SEA #調用錯誤判斷函數
fi
done
unset i x y location rmso smso username password #釋放所有設定的變數