Ограниченная оболочка
Если Bash запущен с именем rbash, или опцией --restricted или -r при вызове, оболочка становится ограниченной. Ограниченная оболочка используется для настройки более контролируемой среды, чем стандартная оболочка. Ограниченная оболочка ведет себя идентично bash за исключением того, что следующие действия запрещены или не выполняются:
- Изменение каталогов с помощью встроенной команды
cd. - Установка или сброс значений переменных
SHELL,PATH,HISTFILE,ENV, илиBASH_ENV. - Указание имен команд, содержащих косые черты.
- Указание имени файла, содержащего косую черту, в качестве аргумента встроенной команде
.. - Указание имени файла, содержащего косую черту, в качестве аргумента встроенной команде
history. - Указание имени файла, содержащего косую черту, в качестве аргумента опции -p к встроенной команде
hash. - Импортирование определений функций из среды оболочки при запуске.
- Парсинг значения
SHELLOPTSиз среды оболочки при запуске. - Перенаправление вывода с помощью операторов перенаправления ‘>’, ‘>|’, ‘<>’, ‘>&’, ‘&>’, и ‘>>’.
- Использование встроенной команды
execдля замены оболочки другой командой. - Добавление или удаление встроенных команд с помощью опций -f и -d к встроенной команде
enable. - Использование встроенной команды
enableдля активации отключенных встроенных команд оболочки. - Указание опции -p к встроенной команде
command. - Отключение ограниченного режима с помощью ‘set +r’ или ‘shopt -u restricted_shell’.
Эти ограничения применяются после чтения всех файлов запуска.
Когда выполняется команда, которая оказывается скриптом оболочки (см. Скрипты оболочки), rbash отключает любые ограничения в оболочке, запущенной для выполнения скрипта.
Режим ограниченной оболочки является лишь одной частью полезной ограниченной среды. Его следует дополнить установкой PATH на значение, которое разрешает выполнение только нескольких проверенных команд (команды, которые допускают эскапирование оболочки, особенно уязвимы), изменением текущего каталога на не-записываемый каталог, кроме $HOME после входа в систему, запретом выполнения скриптов оболочки в ограниченной оболочке, и очисткой среды от переменных, которые заставляют некоторые команды изменять свое поведение (например, VISUAL или PAGER).
Современные системы предлагают более безопасные способы реализации ограниченной среды, такие как jails, zones, или containers.
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
Licensed under the GNU Free Documentation License.
https://www.gnu.org/software/bash/manual/html_node/The-Restricted-Shell.html