В мире Linux и Unix-подобных систем безопасность имеет решающее значение, особенно когда системой пользуются несколько пользователей. Один из способов повысить безопасность — использовать ограниченные оболочки. Одной из таких оболочек является rbash, или ограниченная оболочка Bash.
В этой статье объясняется, что такое rbash, чем он отличается от обычной оболочки Bash, и приводятся практические примеры его использования.
Прежде чем углубляться в rbash, давайте проясним, что такое оболочка.
Оболочка — это программа, которая позволяет пользователям взаимодействовать с системой Linux через интерфейс командной строки. Она интерпретирует команды, введённые пользователем, и взаимодействует с системой для выполнения этих команд.
Bash (Bourne Again SHell) — одна из наиболее широко используемых оболочек в средах Linux.
Когда пользователь входит в систему с помощью rbash, он не может выполнять задачи, которые могут поставить под угрозу систему или других пользователей.
Ниже приведены некоторые ключевые различия между bash и rbash:
Эти ограничения делают rbash подходящим для сценариев, в которых вы хотите предоставить пользователям ограниченный доступ, сохраняя при этом уровень безопасности.
Вот несколько ситуаций, в которых использование rbash выгодно:
Настройка rbash в вашей системе Linux — простой процесс, вам нужно лишь выполнить следующие действия:
В большинстве дистрибутивов Linux по умолчанию установлен Bash. Вы можете проверить, установлен ли он, выполнив команду:
bash --version
Вы можете создать пользователя специально для 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.
После входа в систему как ограниченный пользователь, попробуйте изменить каталоги:
cd /tmp
Вы получите сообщение об ошибке, например -rbash: cd: restricted
, которое подтверждает, что пользователь не может выйти за пределы своего домашнего каталога.
Попробуйте выполнить такие команды, как exec
или set
:
exec bash
Вы получите сообщение об ошибке -rbash: exec: restricted
, которое показывает, что пользователю запрещено запускать новые экземпляры оболочки.
Попытка перенаправить выходные данные в файл:
echo "Тест" > test.txt
Вы получите сообщение об ошибке, в котором будет указано, что пользователи не могут перенаправлять вывод в файлы.
-rbash: test.txt: restricted: cannot redirect output
Чтобы посмотреть, какие команды может выполнять ограниченный пользователь, вы можете создать простой скрипт в его каталоге bin.
Например, создайте файл с именем hello.sh
:
echo "echo 'Привет, мир!'" > /home/restricteduser/bin/hello.sh chmod +x /home/restricteduser/bin/hello.sh
Теперь, когда ограниченный пользователь запускает:
./hello.sh
Они увидят на экране надпись «Привет, мир!», которая показывает, что они могут выполнять разрешённые команды.
Таким образом, rbash — это мощный инструмент для повышения безопасности в многопользовательских средах Linux. Ограничивая доступ к определённым командам и функциям, он помогает поддерживать целостность системы, позволяя пользователям выполнять базовые задачи.