Ubuntu
sudo echo 'bla' >> /etc/sysctl.conf
權限被拒絕
免責聲明:我是系統管理員的新手。
我正在嘗試在 AWS EC2 實例中設置埠轉發,這必須在命令行中完成,因為我不想進入並編輯任何內容,它必須是自動的(它是建構過程的一部分)。
sudo echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
沒有權限
奇怪的是,我已經(成功地)使用
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"
您可能會發現使用此命令更簡單:
echo net.ipv4.ip_forward = 1 | sudo tee -a /etc/sysctl.conf