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

Kev*_*dez 16 command-line bash

我试着跑

echo 1 > /proc/sys/net/ipv4/ip_forward
Run Code Online (Sandbox Code Playgroud)

它说 bash 拒绝访问,然后我做了:

sudo chmod 1+x /proc/sys/net/ipv4/ip_forward
Run Code Online (Sandbox Code Playgroud)

现在它说不允许操作。

我如何获得访问权限?

hee*_*ayl 22

该文件的权限位/proc/sys/net/ipv4/ip_forward是:

-rw-r--r-- 
Run Code Online (Sandbox Code Playgroud)

owner:grouproot:root

所以只能root写入文件。

当你这样做时:

echo 1 > /proc/sys/net/ipv4/ip_forward
Run Code Online (Sandbox Code Playgroud)

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

你可以做:


请注意,您应该/etc/sysctl.conf/proc/sys子目录进行持久操作。

简而言之,要启用 IP 转发,您只需将以下内容放入/etc/sysctl.conf

net.ipv4.ip_forward = 1
Run Code Online (Sandbox Code Playgroud)

然后运行:

sudo sysctl -p
Run Code Online (Sandbox Code Playgroud)

立即生效。

这与/proc/sys/net/ipv4/ip_forward 直接编辑文件具有相同的效果,更不用说更清晰,当然也更持久。