微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ubuntu – “sudo echo”bla“>> / etc / sysctl.conf`权限被拒绝

免责声明:我是sysadmin的新手.

我正在尝试在AWS EC2实例中设置端口转发,这必须在命令行中完成,因为我不想进入并编辑任何内容,它必须是自动的(它是构建过程的一部分) ).

sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

Permission denied

奇怪的是我已经(成功)使用sudo几乎每个需要su权限的命令.如果我在命令之前做sudo su(在ssh会话中手动尝试),那么它可以工作.

这背后的原因?可能的解决方案不涉及sudo su或手动编辑?

你不能使用sudo来影响输出重定向; >和>> (并且,为了完整性,<)受到调用用户的特权的影响,因为重定向是由调用shell完成的,而不是被调用的子进程. 要么这样做
cp /etc/sysctl.conf /tmp/
echo "net.ipv4.ip_forward = 1" >> /tmp/sysctl.conf
sudo cp /tmp/sysctl.conf /etc/

要么

sudo /bin/su -c "echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"

原文地址:https://www.jb51.cc/ubuntu/348769.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐