在 shell 脚本中与非 root 用户连接后更改 root



我在试探时遇到了一个lil'问题。我有脚本可以安装名为SCCM和TrendMicro的代理。使用 sudo 权限用户登录后,我想在脚本中使用 root 用户运行命令。我不知道该怎么办。我尝试了 sudo 的一些需要根权限的命令。但是我收到"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}" 

做 退出

您是否有权访问要连接的主机的/etc/sudoers

本博客和Unix&Linux Stack Exchange网站指出,将/etc/sudoers中的行从Defaults requiretty更改为Defaults !requiretty,或者使用-t-tt选项进行ssh,从而在远程端生成伪终端。当心副作用(有关详细信息,请参阅上面列出的第二个链接(。

最新更新