所以這裏是我的問題,我有我寫這個腳本,我在哪裏出口兩個變量,但他們沒有把它變成子殼。有一個問題傳遞變量到subshell
該腳本的目的是爲CentOS和Ubuntu主機更改用戶密碼並清除它們的pam_tally。
有一點背景是,這個環境的用戶是由puppet管理的,但密碼都是本地的,ssh密鑰也是不允許的(這是設置在石頭上,不能改變,所以我必須與我得到的東西一起工作),原因是每次登錄都必須是手動的(甚至會話數限制爲兩個,所以你甚至不能有效地使用csshX)。
這裏是我的腳本
#!/bin/bash
echo "Please enter user whose password you want to change"
read NEWUSER
echo "Please enter new password for user"
read -s -p "Temp Password:" TEMPPASSWORD
PASSWORD=$TEMPPASSWORD
export PASSWORD
NEWUSER2=$NEWUSER
export NEWUSER2
for i in HOST{cluster1,cluster2,cluster3}0{1..9}
do
ping -c 2 $i && (echo $i ; ssh -t $i '
sudo pam_tally2 --user=$NEWUSER2 --reset
echo -e "$PASSWORD\n$PASSWORD" | sudo passwd $NEWUSER2
sudo chage -d 0 $NEWUSER2
')
done
感謝這個,這是一個很大的幫助。 – Kevin