Ipsysctl tutorial 1.0.4


С помощью файловой системы /proc


Интерфейс файловой системы /proc предоставляет простой доступ к переменным ipsysctl, однако, он более подходит для экспериментов с настройками, либо когда команда sysctl отсутствует в системе. Очень удобно пользоваться файловой системой /proc в отдельных случаях, когда переменная не должна включаться до определенного момента во время загрузки. Например, было бы просто замечательно, если бы переменная ip_forward включалась уже после того, как будет запущен брандмауэр.

Все что вам необходимо, чтобы пользоваться таким методом чтения-записи переменных -- это команды cat и echo. Очень трудно поверить в то, что у вас нет какой либо из них. Практически невозможно установить систему так, чтобы в ней не было этих команд.

Прежде всего, вам нужно запомнить, что все переменные, которые могут быть использованы или изменены, находятся в каталоге /proc/sys/. Все переменные, которые описываются в данном руководстве, находятся в каталоге /proc/sys/net/ipv4. В общем, для начала вам следует набирать команду

cd /proc/sys/net/ipv4

Чтобы просмотреть список доступных переменных, следует выполнить команду

ls

Проще говоря -- вы все это уже должны знать! Если это не так, то вы взялись читать не то руководство! Чтобы посмотреть значение конкретной переменной, выполните команду cat ip_forward. На мониторе это будет выглядеть примерно так:

[blueflux@work1 ipv4]$ cat ip_forward

0 [blueflux@work1 ipv4]$

Как вы можете убедиться, значения переменных могут быть прочитаны любым, кто имеет доступ к системе. Это может показаться вам проблемой с точки зрения безопасности, поскольку любой, имеющий доступ к системе сможет выяснить все настройки системы.

К сожалению невозможно ограничить права доступа к файловой системе /proc. Дело в том, что все права на доступ жестко "зашиты" в нее, а потому "вручную" они не изменяются. Если вы очень, ОЧЕНЬ захотите изменить права доступа, то вы сможете сделать это внеся изменения в исходный текст программ, которые находятся в каталоге linux/fs/proc.

Для записи значения в переменную воспользуйтесь командой echo. Обычно, команда echo используется для вывода на экран, но мы можем перенаправить вывод и в файл. Для случая bash это может выглядеть примерно так:

[root@work1 ipv4]# echo "1" > ip_forward

[root@work1 ipv4]#

Как вы уже наверняка заметили, на сей раз мы находимся в каталоге, где лежит файл (переменная) ip_forward, поэтому не был указан полный путь к переменной. Операции записи доступны только если у вас есть права суперпользователя root. Под простым пользователем попытка записи в переменную будет выглядеть примерно так:

[blueflux@work1 ipv4]$ echo "1" > ip_forward

bash: ip_forward: Permission denied [blueflux@work1 ipv4]$

Обратите внимание на то, что все команды из примеров запускаются в соответствующем каталоге. По этой причине не указывается полный путь к переменным.



Содержание раздела