bev*_*qua 20 ubuntu ssh sudo amazon-ec2
免责声明:我在系统管理员方面还是个新手。
我正在尝试在 AWS EC2 实例中设置端口转发,这必须在命令行中完成,因为我不想进入并编辑任何内容,它必须是自动的(这是构建过程的一部分)。
sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)
没有权限
奇怪的是我已经(成功地)使用sudo了几乎所有需要su特权的命令。如果我sudo su在命令之前执行(在ssh会话中手动尝试),则它可以工作。
这背后的原因?不涉及sudo su或手动编辑的可能解决方案?
Mad*_*ter 49
不能用于sudo影响输出重定向;>和>>(并且,为了完整<起见,)受调用用户的特权影响,因为重定向是由调用 shell 完成的,而不是被调用的子进程。
要么做
cp /etc/sysctl.conf /tmp/
echo "net.ipv4.ip_forward = 1" >> /tmp/sysctl.conf
sudo cp /tmp/sysctl.conf /etc/
Run Code Online (Sandbox Code Playgroud)
或者
sudo /bin/su -c "echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf"
Run Code Online (Sandbox Code Playgroud)
Ran*_*832 20
您可能会发现使用此命令更简单:
echo net.ipv4.ip_forward = 1 | sudo tee -a /etc/sysctl.conf
Run Code Online (Sandbox Code Playgroud)
Cak*_*mox 14
sudo仅以 root 身份运行您的命令,而不是重定向。你需要把它全部包装在一个命令中,整个事情都以 root 身份运行:
sudo sh -c 'echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24849 次 |
| 最近记录: |