【发布时间】:2016-12-28 09:56:10
【问题描述】:
我希望将文本从标准输入写入 root 拥有的文件。
我通过 SSH 连接以编程方式执行此操作 - 主要来自脚本 - 所以使用文本编辑器是不可能的。没有终端。该过程是完全自动化的。
鉴于 [a] 根高度可以通过 sudo 获得,并且 [b] 文件可以使用带有重定向的 cat 写入,我假设以下方法可行:
ssh user@host sudo cat >the-file
不幸的是,重定向被应用到sudo,而不是cat。在此示例中,如何将重定向应用到 cat?
【问题讨论】:
-
事实上,您甚至可以通过 SSH 连接使用文本编辑器,vim 或 nano 之类的编辑器应该可以正常工作。尝试使用 SSH 连接更好地解释您的情况。您尝试重定向时已经登录?
-
您的 sudo 命令似乎不正确。应该是
sudo -u user -h host cat > the-file。这适用于我的系统。 “我通过 SSH 连接执行此操作,因此使用文本编辑器是不可能的”。这个结论并不像你做出的那样不言自明。vim、nano甚至emacs -nw等编辑器在终端中工作得很好。 -
@John1024 是的,我可以使用 tee,但我宁愿直接解决重定向问题。
-
@paulequilibrio 我正在以编程方式调用该命令。我可以发出命令,但我没有终端。
-
@kaylum 如果
-h是所有平台上sudo的标准参数,那就太好了。例如,在 Mac 上,没有这样的选项。你是对的,我的命令是错误的:我已经编辑了问题来修复它。
标签: linux bash shell sudo file-access