Bash /proc/sys/net/ipv4/ip_forward: Permission denied
The permission bits for the file /proc/sys/net/ipv4/ip_forward
is:
-rw-r--r--
with owner:group
being root:root
.
So only root
can write to the file.
When you do:
echo 1 > /proc/sys/net/ipv4/ip_forward
as a normal user, you won't be able to write to the file due to insufficient permission.
You can do:
-
Use
sudo
andbash
:sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
-
Use
tee
:echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
Note that, you should use /etc/sysctl.conf
for persistent operations on the /proc/sys
subdirectories.
In a nutshell, to enable IP forwarding, you can just put the following in /etc/sysctl.conf
:
net.ipv4.ip_forward = 1
Then run:
sudo sysctl -p
to have immediate effect.
This has the same effect as editing the file /proc/sys/net/ipv4/ip_forward
directly, and not to mention far cleaner and of course persistent.
A simpler solution is using:
sudo su
by this call you will login to your root user and you will be able to edit the file.
N.B: use this at your own risk.