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

前端之家收集整理的这篇文章主要介绍了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.f2er.com/ubuntu/348769.html

猜你在找的Ubuntu相关文章