免责声明:我是sysadmin的新手.
@H_301_16@
你不能使用sudo来影响输出重定向; >和>> (并且,为了完整性,<)受到调用用户的特权的影响,因为重定向是由调用shell完成的,而不是被调用的子进程. 要么这样做
我正在尝试在AWS EC2实例中设置端口转发,这必须在命令行中完成,因为我不想进入并编辑任何内容,它必须是自动的(它是构建过程的一部分) ).
sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
Permission denied
奇怪的是我已经(成功)使用sudo几乎每个需要su权限的命令.如果我在命令之前做sudo su(在ssh会话中手动尝试),那么它可以工作.
这背后的原因?可能的解决方案不涉及sudo su或手动编辑?
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"