Sod*_*hty 3 linux bash shell sudo file-access
我希望将文本从标准输入写入 root 拥有的文件。
我通过 SSH 连接以编程方式执行此操作 - 本质上是通过脚本 - 因此使用文本编辑器是不可能的。没有终端。该过程完全自动化。
鉴于可以通过 获取 [a] 根标高sudo,并且可以使用cat重定向来写入 [b] 文件,我假设以下内容可行:
ssh user@host sudo cat >the-file
Run Code Online (Sandbox Code Playgroud)
不幸的是,重定向应用于sudo,而不是cat。在此示例中如何应用重定向cat?
执行此操作的正常模式是:
ssh user@host 'cat | sudo tee the-file'
Run Code Online (Sandbox Code Playgroud)
tee将输出重定向到文件并可以使用sudo.
如果您想模拟>>文件附加到的位置,请使用sudo tee -a.
您还需要确保引用上面的命令,以便本地 shell 不会解释该管道。
编辑
该tee命令是 POSIX 的一部分,因此您可以依赖它的现有命令。
还要重定向标准错误:
ssh user@host 'some_command 2>&1 | sudo tee output-file'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4453 次 |
| 最近记录: |