Bash /proc/sys/net/ipv4/ip_forward:权限被拒绝

Bash /proc/sys/net/ipv4/ip_forward:权限被拒绝

我试着跑

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:grouproot:root

所以只能root写入文件。

当你这样做时:

echo 1 > /proc/sys/net/ipv4/ip_forward

作为普通用户,由于权限不足,您将无法写入该文件。

你可以做:

  • 使用sudobash

    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

通过此调用,您将登录到您的根用户,并能够编辑该文件。

注意:使用此功能需您自担风险。

相关内容