我要更改服务器列表的/ application目录的用户和组。
我已经创建了以下脚本,当我运行该脚本时,它会提示您输入密码,当我输入密码时,没有任何反应发生。
#!/bin/bash
file=hosts.txt
for HOST in $(grep -v '^#' $file)
do
ssh -T $HOST <<EOF
sudo su - root
chown root:root /application
echo "Hostname : " \$(hostname)
EOF
sleep 2
done
下面是提示输出
[mayana@TestHOST test1]$ sh test.sh
Last login: Fri Nov 9 14:06:56 2018 from TestHOST.com
sudo su - root
[mayana@TargetHost1 ~]$ sudo su - root
[sudo] password for mayana: Password
^CKilled by signal 2.
^C
[mayana@TestHOST test1]$
请帮助我如何为该脚本传递密码。
答案 0 :(得分:2)
运行此命令时:
sudo su - root
它启动一个交互式根shell。它不会导致脚本中的其余命令以root用户身份运行。
您需要给sudo
赋予特定的命令作为参数运行:
sudo chown root:root /application
该脚本仍会提示您输入密码,但此后它将继续运行。