В мире Linux и Unix-подобных систем безопасность имеет решающее значение, особенно когда системой пользуются несколько пользователей. Один из способов повысить безопасность — использовать ограниченные оболочки. Одной из таких оболочек является rbash, или ограниченная оболочка Bash.
В этой статье объясняется, что такое rbash, чем он отличается от обычной оболочки Bash, и приводятся практические примеры его использования.
Что такое оболочка?
Прежде чем углубляться в rbash, давайте проясним, что такое оболочка.
Оболочка — это программа, которая позволяет пользователям взаимодействовать с системой Linux через интерфейс командной строки. Она интерпретирует команды, введённые пользователем, и взаимодействует с системой для выполнения этих команд.
Bash (Bourne Again SHell) — одна из наиболее широко используемых оболочек в средах Linux.
Что такое rbash?
Когда пользователь входит в систему с помощью rbash, он не может выполнять задачи, которые могут поставить под угрозу систему или других пользователей.
Ключевые различия между Bash и rbash
Ниже приведены некоторые ключевые различия между bash и rbash:
- В rbash пользователи не могут изменить свой каталог с помощью команды cd. Они могут работать только в своём домашнем каталоге.
- Некоторые команды, такие как exec, set и unset, ограничены в использовании, чтобы пользователи не могли изменять среду оболочки.
- Пользователи не могут изменять переменные среды, которые могут повлиять на других пользователей или системные настройки.
- В rbash пользователи не могут перенаправлять ввод или вывод, что затрудняет выполнение команд, которые могут получить доступ к файлам за пределами выделенных областей или работать с ними.
Эти ограничения делают rbash подходящим для сценариев, в которых вы хотите предоставить пользователям ограниченный доступ, сохраняя при этом уровень безопасности.
Когда использовать rbash
Вот несколько ситуаций, в которых использование rbash выгодно:
- Общедоступные терминалы: в таких местах, как библиотеки или школы, где пользователям нужен доступ к базовым командам, но не следует изменять системные настройки.
- Общие серверы: в общих системах rbash может препятствовать доступу пользователей к данным других пользователей или критически важным системным файлам.
- Тестирование и обучающие среды: при обучении пользователей базовым навыкам работы с командной строкой rbash может помочь ограничить их действия, чтобы избежать случайных изменений в системе.
Как настроить rbash в Linux
Настройка rbash в вашей системе Linux — простой процесс, вам нужно лишь выполнить следующие действия:
1. Установите Bash в Linux
В большинстве дистрибутивов Linux по умолчанию установлен Bash. Вы можете проверить, установлен ли он, выполнив команду:
bash --version
2. Создайте пользователя с ограниченной оболочкой
Вы можете создать пользователя специально для rbash.
sudo adduser anusha
После создания пользователя измените его оболочку по умолчанию на rbash:
sudo usermod -s /bin/rbash restricteduser
Чтобы ещё больше ограничить среду этого пользователя, вы можете создать специальный каталог и сделать его домашним каталогом пользователя:
sudo mkdir /home/anusha/bin
Затем вы можете поместить в этот каталог любые скрипты или команды, к которым вы хотите предоставить доступ пользователю.
Чтобы ограничить набор доступных пользователю команд, установите значение для переменной PATH, включающее только каталог bin
:
echo 'export PATH=$HOME/bin' | sudo tee -a /home/anusha/.bashrc
Теперь вы можете войти в систему как ограниченный пользователь:
su - annaK
Как использовать rbash в Linux
Давайте рассмотрим несколько практических примеров, чтобы понять, как работает rbash.
Пример 1: Попытка изменить каталог
После входа в систему как ограниченный пользователь, попробуйте изменить каталоги:
cd /tmp
Вы получите сообщение об ошибке, например -rbash: cd: restricted
, которое подтверждает, что пользователь не может выйти за пределы своего домашнего каталога.
Пример 2: выполнение ограниченных команд
Попробуйте выполнить такие команды, как exec
или set
:
exec bash
Вы получите сообщение об ошибке -rbash: exec: restricted
, которое показывает, что пользователю запрещено запускать новые экземпляры оболочки.
Пример 3: перенаправление файла
Попытка перенаправить выходные данные в файл:
echo "Тест" > test.txt
Вы получите сообщение об ошибке, в котором будет указано, что пользователи не могут перенаправлять вывод в файлы.
-rbash: test.txt: restricted: cannot redirect output
Пример 4: Разрешенные команды
Чтобы посмотреть, какие команды может выполнять ограниченный пользователь, вы можете создать простой скрипт в его каталоге bin.
Например, создайте файл с именем hello.sh
:
echo "echo 'Привет, мир!'" > /home/restricteduser/bin/hello.sh chmod +x /home/restricteduser/bin/hello.sh
Теперь, когда ограниченный пользователь запускает:
./hello.sh
Они увидят на экране надпись «Привет, мир!», которая показывает, что они могут выполнять разрешённые команды.
Заключение
Таким образом, rbash — это мощный инструмент для повышения безопасности в многопользовательских средах Linux. Ограничивая доступ к определённым командам и функциям, он помогает поддерживать целостность системы, позволяя пользователям выполнять базовые задачи.