unable to edit /proc/sys/net/ipv4/ip_forward in Xubuntu
38,237
Solution 1
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
Solution 2
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.
Related videos on Youtube
![conandor](https://i.stack.imgur.com/91GGc.png?s=256&g=1)
Author by
conandor
Updated on September 18, 2022Comments
-
conandor almost 2 years
I try to change
ip_forward
from0
to1
but fail, even with root permission in Xubuntu 11.10. I don't have such similar problem while using Ubuntu 11.10chiaki@chiaki:~$ sudo echo 1 > /proc/sys/net/ipv4/ip_forward bash: /proc/sys/net/ipv4/ip_forward: Permission denied
any idea?
-
George about 10 yearsThis completely worked for me! Just a couple of extra questions though: i) can I make those changes somehow persist through reboots and ii) why do those two commands even work?! and iii) why can't I even change the permission or the owner of that file, even when logged in as root?
-
Panther about 10 years@George - see askubuntu.com/questions/311053/… . As to your other questions, best ask a question rather then ask in the comments. Good luck to you.
-
Adaephon about 10 yearsWhile this probably will solve the problem, it would certainly be useful to know why this works in contrast to the use of
sudo
in the question. Namely, whileecho
will be run with superuser permissions, the output redirecton>
will still run with the current shells permissions.