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:group是root:root。
所以只能root写入文件。
当你这样做时:
echo 1 > /proc/sys/net/ipv4/ip_forward
Run Code Online (Sandbox Code Playgroud)
作为普通用户,由于权限不足,您将无法写入文件。
你可以做:
使用sudo和bash:
sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
Run Code Online (Sandbox Code Playgroud)使用tee:
echo 1 | sudo tee /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 直接编辑文件具有相同的效果,更不用说更清晰,当然也更持久。