在shell脚本

时间:2017-08-14 08:01:49

标签: linux shell root sudo sccm

在scipting时我有一个小问题。我有脚本,将安装名为SCCM和TrendMicro的代理。在我使用sudo priviledge用户登录后,我想在脚本中使用root用户运行命令。我不知道该怎么做。我尝试sudo一些想要root priv的命令。但我得到 “sudo:抱歉,你必须有一个tty来运行sudo” 消息。所以我想用sudo priv登录。用户而不是更改为root并运行所有命令。

注意:我只是添加了SCCM安装。在我想出这个之后,我将在$ SCRIPT中添加TM安装命令。

> #!/bin/bash USERNAME=user HOSTS="host1 host2" 
  SCRIPT="mkdir /tmp/SCCM; wget -O /tmp/SCCM/ccm-Universalx64.tar
> ftp://local/pub/SW/SCCM/ccm-Universalx64.tar; wget -O
> /tmp/SCCM/install ftp://local/pub/SW/SCCM/install; chmod 755
> /tmp/SCCM/*; cd /tmp/SCCM; /tmp/SCCM/install -mp another_host
> -sitecode MGR ccm-Universalx64.tar;  /etc/init.d/ccmexecd stop; /etc/init.d/ccmexecd start" for HOSTNAME in ${HOSTS} ; do
>     ssh -l ${USERNAME} ${HOSTNAME} "${SCRIPT}" 

完成 出口

1 个答案:

答案 0 :(得分:1)

您是否可以访问您要连接的主机的/etc/sudoers

This blogUnix & Linux Stack Exchange Website指向将/etc/sudoers中的行从Defaults requiretty更改为Defaults !requiretty或使用-t或{{ 1}} ssh的选项产生远程端的伪终端。注意副作用(详见上面列出的第二个链接)。