在Fedora上运行远程根脚本

时间:2011-01-20 17:09:37

标签: linux bash scripting command-line fedora

我想通过SSH在我的远程Fedora服务器上自动执行根脚本操作,而无需在服务器上安装脚本。为此,我尝试使用Bash的内联脚本表示法。这在Ubuntu中运行良好,但我在Fedora上遇到了奇怪的错误。

e.g。

#!/bin/bash
ssh -t myuser@myserver <<EOI

su -
ls /root
exit

exit
EOI

这给了我输出:

standard in must be a tty
ls: cannot open directory /root: Permission denied

我也试过了:

#!/bin/bash
ssh -t myuser@myserver <<EOI

sudo ls /root

exit
EOI

但是这给了我:

sudo: no tty present and no askpass program specified

如果我手动ssh并运行这些命令,它们运行正常,因为myuser在sudoers文件中。我用Google搜索了这些错误并尝试了一些修复,但到目前为止还没有任何工作。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您似乎被提示输入密码,但无法输入密码。这里有一些应该有用的东西。

尝试额外的-t选项:ssh -tt myuser@myserver <<EOI

这也是一个方便的技巧,无需启用root密码即可以root身份登录:sudo su -

作为最后的手段,您可以使用visudo将用户设置为sudo而无需密码。您可能会看到一些类似的评论来帮助您:

# Uncomment to allow members of group sudo to not need a password
# (Note that later entries override this, so you might need to move
# it further down)
# %sudo ALL=NOPASSWD: ALL