Bash / proc / sys / net / ipv4 / ip_forward: разрешение отклонено

5

Я попытался запустить

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

В нем говорится, что Access denied from bash, я тогда сделал:

sudo chmod 1+x /proc/sys/net/ipv4/ip_forward

, и теперь он говорит, что операция не разрешена.

Как я могу получить доступ?

    
задан ChrisEthanFox 05.06.2016 в 07:06
источник

1 ответ

6

Биты разрешения для файла /proc/sys/net/ipv4/ip_forward :

-rw-r--r-- 

с owner:group , root:root .

Таким образом, только файл root может записать файл.

Когда вы выполните:

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

как обычный пользователь, вы не сможете записать файл из-за недостаточного разрешения.

Вы можете сделать:

  • Используйте sudo и bash :

    sudo bash -c 'echo 1 > /proc/sys/net/ipv4/ip_forward'
    
  • Используйте tee :

    echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
    

Обратите внимание, что вы должны использовать /etc/sysctl.conf для постоянных операций в подкаталогах /proc/sys .

В двух словах, чтобы включить переадресацию IP, вы можете просто поместить следующее в /etc/sysctl.conf :

net.ipv4.ip_forward = 1

Затем запустите:

sudo sysctl -p

иметь немедленный эффект.

Это имеет тот же эффект, что и редактирование файла /proc/sys/net/ipv4/ip_forward напрямую, и не говоря уже о более чистом и, конечно, постоянном.

    
ответ дан heemayl 05.06.2016 в 07:15