我试着跑
echo 1 > /proc/sys/net/ipv4/ip_forward
它说 bash 拒绝访问,然后我执行以下操作:
sudo chmod 1+x /proc/sys/net/ipv4/ip_forward
现在显示操作不允许。
我如何才能获得访问权限?
答案1
该文件的权限位/proc/sys/net/ipv4/ip_forward
是:
-rw-r--r--
与。owner:group
root:root
所以只能root
写入文件。
当你这样做时:
echo 1 > /proc/sys/net/ipv4/ip_forward
作为普通用户,由于权限不足,您将无法写入该文件。
你可以做:
使用
sudo
和bash
:sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
使用
tee
:echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
请注意,您应该使用/etc/sysctl.conf
对/proc/sys
子目录进行持久操作。
简而言之,要启用 IP 转发,您只需输入以下内容/etc/sysctl.conf
:
net.ipv4.ip_forward = 1
然后运行:
sudo sysctl -p
立即生效。
这与直接编辑文件具有相同的效果/proc/sys/net/ipv4/ip_forward
,更不用说更加干净,当然也更加持久。
答案2
一个更简单的解决方案是使用:
sudo su
通过此调用,您将登录到您的根用户,并能够编辑该文件。
注意:使用此功能需您自担风险。