rbash – ограниченная оболочка Bash, объясненная практическими примерами

27.10.2024
rbash – ограниченная оболочка Bash, объясненная практическими примерами

В мире Linux и Unix-подобных систем безопасность имеет решающее значение, особенно когда системой пользуются несколько пользователей. Один из способов повысить безопасность — использовать ограниченные оболочки. Одной из таких оболочек является rbash, или ограниченная оболочка Bash.

В этой статье объясняется, что такое rbash, чем он отличается от обычной оболочки Bash, и приводятся практические примеры его использования.

 

Что такое оболочка?

Прежде чем углубляться в rbash, давайте проясним, что такое оболочка.

Оболочка — это программа, которая позволяет пользователям взаимодействовать с системой Linux через интерфейс командной строки. Она интерпретирует команды, введённые пользователем, и взаимодействует с системой для выполнения этих команд.

Bash (Bourne Again SHell) — одна из наиболее широко используемых оболочек в средах Linux.

 

Что такое rbash?

rbash

 — это ограниченная версия оболочки Bash, которая предназначена для ограничения доступа пользователей к определённым командам и функциям, повышая безопасность системы.

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

 

Ключевые различия между Bash и rbash

Ниже приведены некоторые ключевые различия между bash и rbash:

  • В rbash пользователи не могут изменить свой каталог с помощью команды cd. Они могут работать только в своём домашнем каталоге.
  • Некоторые команды, такие как execset и unset, ограничены в использовании, чтобы пользователи не могли изменять среду оболочки.
  • Пользователи не могут изменять переменные среды, которые могут повлиять на других пользователей или системные настройки.
  • В rbash пользователи не могут перенаправлять ввод или вывод, что затрудняет выполнение команд, которые могут получить доступ к файлам за пределами выделенных областей или работать с ними.
Читать  Статус выхода дочернего процесса в Linux

 

Эти ограничения делают 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

 

Затем вы можете поместить в этот каталог любые скрипты или команды, к которым вы хотите предоставить доступ пользователю.

Читать  команда wget удалена из стандартной установки Ubuntu Server 25.10

Чтобы ограничить набор доступных пользователю команд, установите значение для переменной 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

 

Читать  Как подключиться к MySQL из командной строки в Windows

Теперь, когда ограниченный пользователь запускает:

./hello.sh

 

Они увидят на экране надпись «Привет, мир!», которая показывает, что они могут выполнять разрешённые команды.

 

Заключение

Таким образом, rbash — это мощный инструмент для повышения безопасности в многопользовательских средах Linux. Ограничивая доступ к определённым командам и функциям, он помогает поддерживать целостность системы, позволяя пользователям выполнять базовые задачи.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Редактор: AndreyEx

Рейтинг: 4.7 (3 голоса)
Если статья понравилась, то поделитесь ей в социальных сетях:

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Это может быть вам интересно


Загрузка...

Спасибо!

Теперь редакторы в курсе.

Прокрутить страницу до начала