Поиск по сайту:
Эгоист подобен давно сидящему в колодце (К. Прутков).

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

 

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

Читать  Как и когда использовать команду Dot в Bash?

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

 

Читать  Команды Exit и коды выхода в Bash

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

./hello.sh

 

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

 

Заключение

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

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

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:


5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

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


Рекомендуемое
Crusader Squire – это линейка серверов российского производства, разработанная компанией…

Спасибо!

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