跳转至

使用 sudo 时使用重定向操作

约 106 个字 9 行代码 预计阅读时间不到 1 分钟

情景

$ sudo echo "echo hello" > /usr/local/bin/hello

提示没有权限。

处理方法

  • 使用 bash 命令: bash sudo bash -c 'echo "echo hello" > /usr/local/bin/hello'
  • 使用 tee而不是 STDOUT 重定向写入文件: bash sudo echo "echo helo" | sudo tee /usr/local/bin/hello >/dev/null

拓展

在自动化 Shell 脚本中,可以使用该方式:

1
2
3
4
5
6
echo $USER_PW | sudo -S bash -c 'cat >> /etc/security/limits.conf << EOF
root soft nofile 65535
root hard nofile 65535
* soft nofile 65535
* hard nofile 65535
EOF'

来源

如何在Linux上重定向sudo命令的STDOUT并以root身份写入文件?_cuma2369的博客-CSDN博客

How to redirect STDOUT of sudo command on Linux and write to file as root? - SysTutorials