免责声明:我是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