无法从Shell脚本切换到root用户

时间:2018-11-09 13:32:17

标签: bash shell

我要更改服务器列表的/ 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]$

请帮助我如何为该脚本传递密码。

1 个答案:

答案 0 :(得分:2)

运行此命令时:

sudo su - root

它启动一个交互式根shell。它不会导致脚本中的其余命令以root用户身份运行。

您需要给sudo赋予特定的命令作为参数运行:

sudo chown root:root /application

该脚本仍会提示您输入密码,但此后它将继续运行。