12

I try to change ip_forward from 0 to 1 but fail, even with root permission in Xubuntu 11.10. I don't have such similar problem while using Ubuntu 11.10

chiaki@chiaki:~$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward 
bash: /proc/sys/net/ipv4/ip_forward: Permission denied

any idea?

conandor
  • 293

4 Answers4

21

You can not re-direct so easily with sudo. There are several potential solutions, including tee.

You can re-direct to files you own as the user calling sudo, such as files in your home directory, but not system files.

Example

# it works when re-direction to a location / file the user has permission to access
ubuntu@ubuntu:~$sudo echo "it works" > ~/file
ubuntu@ubuntu:~$cat file
it works

# But NOT if you do not have permission to access the target
ubuntu@ubuntu:~$sudo echo "it works" > /root/file
-bash: /root/file: Permission denied

Option one

use sudo bash -c and quote the entire command

sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'

Option two

Use tee

echo "1" | sudo tee /proc/sys/net/ipv4/ip_forward
enzotib
  • 96,093
Panther
  • 104,528
3

If you want to change parameters in /proc/sys, the best thing to do is edit /etc/sysctl.conf and then run sysctl -p. That way your changes will persist across reboots.

tumbleweed
  • 8,106
0

you can use this:

user@ubuntu:~sudo -s 
enter password for sudo:
root@ubuntu:~echo 1 >/proc/sys/net/ipv4/ip_forward :)
0

If you enter the following command, it will works if you don't reboot your computer.

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

once rebooted, the parameter will back to "0"

Try the following command, and it will work even after you reboot.

vim /proc/sysctrl.conf ' - uncommen "net.ipv4.ip_forward=1"

sysctl -p 

now, even, when you reboot your machine, IP forwarding will be always enabled.

Tim
  • 33,500