Я пытался бежать
echo 1 > /proc/sys/net/ipv4/ip_forward
Это говорит, что Доступ запрещен от bash, я тогда сделал:
sudo chmod 1+x /proc/sys/net/ipv4/ip_forward
и теперь он говорит, что операция не разрешена.
Как я могу получить доступ?
command-line
bash
Кевин Эрнандес
источник
источник
echo 1 | sudo tee /proc/sys/net/ipv4/ip_forward
sudo echo 1 > /proc/sys/net/ipv4/ip_forward
в том, что перенаправление вывода выполняется не такsudo
, поэтому не работает. Со страницы man:tee - read from standard input and write to standard output and files
и, если все сделано, уsudo
него достаточно прав для записи в файл.Ответы:
Биты разрешения для файла
/proc/sys/net/ipv4/ip_forward
:с
owner:group
существомroot:root
.Так что только
root
можете записать в файл.Когда вы делаете:
как обычный пользователь, вы не сможете писать в файл из-за недостаточных прав.
Ты можешь сделать:
Используйте
sudo
иbash
:Используйте
tee
:Обратите внимание, что вы должны использовать
/etc/sysctl.conf
для постоянных операций в/proc/sys
подкаталогах.Короче говоря, чтобы включить пересылку IP, вы можете просто добавить следующее
/etc/sysctl.conf
:Затем запустите:
иметь немедленный эффект.
Это имеет тот же эффект, что и редактирование файла
/proc/sys/net/ipv4/ip_forward
напрямую, не говоря уже о том, что он намного чище и, конечно, постоянен.источник
tee
- это команда для отправки всего, что она получает, как в стандартный вывод, так и в файлы. Чекman tee
rm /proc/sys/net/ipv4/icmp_echo_ignore_all
) для удаления такого файла! Я даже проверил неизменный бит, и он не установлен в этом файле ... Я получаю ту же ошибку "rm: не могу удалить" / proc / sys / net / ipv4 / icmp_echo_ignore_all ': разрешение запрещено ". Но волшебным образом я могу редактировать файл, как вы описали! Я не могу понять, в чем проблемаrm
!/proc
т.е.procfs
живет на памяти и выставляется ядром. Итак, вы получаете представление о ядре, и то, что ядро позволяет вам делать с файлами на такой FS, полностью зависит от ядра.