所以这是我的问题,我有这个脚本,我在其中导出两个变量,但是它们没有进入子shell。
该脚本的重点是更改用户密码并清除 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