Ограниченная оболочка ограничивает то, что может сделать учетную запись пользователя на Linux. Ограниченный пользователь не может изменить свой каталог, и вы контролируете, к которым они имеют доступ. Вот как настроить ограниченную оболочку на Linux.
Ограниченные раковины
Ограниченная оболочка не является другой оболочкой. Это другой режим Стандартная оболочка Отказ То Башмак С Преподаватель С Рыба И все снаряды все могут быть запущены в режиме ограниченного оболочки. Мы будем использовать Bash в этой статье, но те же принципы применяются к другим оболочкам.
Поскольку ограниченные раковины являются просто еще одним способом использования вашей стандартной оболочки, их легко настроить. Нет ничего для установки, и они доступны, где Linux есть.
Ограниченные раковины могут быть применены к сценариям тоже. Это гарантирует, что любой ущерб, который они могут привести к тому, что они были написаны неправильно, ограничены ограничениями их ограниченного мира и что у них нет доступа к вашему компьютеру.
Будьте в курсе, однако, что ограниченные раковины не являются полностью убегающимися. Кто-то с достаточным количеством знаний может избежать ограниченной оболочки. Они отлично подходят для надежных границ на случайном пользователе, но не полагайтесь на ограниченные раковины для любой реальной безопасности на производственной системе.
СВЯЗАННЫЕ С: В чем разница между Bash, ZSH и другими раковинами Linux?
Ограниченный удар
Когда вы запустите Bash в качестве ограниченной оболочки, у пользователя есть некоторые возможности удалены из них. В частности, пользователь не мочь :
-
Использовать
CDЧтобы изменить рабочий каталог. -
Изменить значения
$ ПутьС$ Shell.С$ Bash_env., илиДолларОхрана окружающей среды (но они могут прочитать текущие значения). -
Читать или изменить
$ ШеллоптсВарианты окружающей среды Shell. - Перенаправьте вывод команды.
-
Согласите команды, которые требуют пути к тому, чтобы найти их. То есть вы не можете выдать команду, которая имеет одну или несколько форвардных сом »
/" в этом. -
Вызывать
предпринятьзаменить другой процесс для оболочки. - Используйте любую из ограниченных функций в скрипте.
Вы можете вызвать ограниченную оболочку Bash, используя
-р
(ограниченный) вариант. Попытка сделать простую задачу, как изменение рабочего каталога, запрещена. Сообщение, которое говорит вам, что
CD
ограничен.
Bash -r
Документы CD
Оболочка Bash также может обнаружить, когда она была вызвана с использованием «RBash» вместо «Bash». Это заставляет его начать как ограниченную оболочку тоже. Это обеспечивает удобный способ установки оболочки по умолчанию для конкретного пользователя, который скоро мы будем использовать.
Если мы используем
где
команда на Ubuntu искать
rbash.
Файлы, мы увидим, что исполняемый файл находится в каталоге «USR / BIN». Страница человека находится в каталоге "/ usr / share / man / man1".
С помощью
облицовка
команда с
-L.
(Длинный) вариант показывает, что
rbash.
является
на самом деле символическая ссылка
к
башмак
Отказ
Где rbash
ls -l / usr / bin / rbash
На Манджаро и Федора,
rbash.
Символическая ссылка должна была быть создана. Это работает на обоих распределениях:
Где rbash
sudo ln -s / bin / bash / bin / rbash
Где rbash
Второй раз мы используем
где
команда, это находит
rbash.
в каталоге «/ usr / bin».
Ограничение пользователя
Давайте
Создайте новую учетную запись пользователя
названа «Минни». Мы установим их оболочку, чтобы быть ограниченной оболочкой, используя
-
(оболочка) вариант
userAdd.
команда. Также хорошо
Установите пароль учетной записи
с помощью
пассив
Команда, и мы создадим для них домашнюю папку.
То
-п
(родители) флаг в
мкдир
команда рассказывает
мкдир
Чтобы создать целевой каталог и любые родительские каталоги, которые ему необходимо создать. Поэтому, создав каталог «/ Home / minnie / bin», мы создаем каталог «/ Home / Minnie» одновременно.
sudo useradd minnie -s / bin / rbash
sudo passwd minnie
sudo mkdir -p / home / minnie / bin
Когда Минни входит в систему, она будет работать в ограниченной оболочке.
CD
Она не может вызвать команды, которые нужно включить переднюю косулью »
/
":
/ usr / bin / ping
Однако она все еще может выполнять команды, которые найдены на пути.
Ping
Это не поведение, которое вы могли ожидать, и это, безусловно, не то, что мы хотим. Чтобы продолжать ограничения, нам нужно изменить путь, чтобы оболочка Minnie будет использовать для поиска команд.
Затягивая ограничения
Когда мы создали домашний каталог Минни «/ Home / Minnie», мы также создали каталог «/ Home / Minnie / Bin». Это то, где этот каталог вступает в игру.
Мы собираемся редактировать файл minnie's ".bash_profile" и установите свой путь, чтобы указать только на этот каталог. Мы также ограничим файл minnie's ".bash_profile", чтобы только root можно редактировать его. Это означает, что ни один другой пользователь не может редактировать этот файл и изменить свой путь.
sudo gedit /home/minnie/.bash_profile
Либо отредактируйте существующий «путь =», либо добавьте следующую строку:
Путь = $ HOME / BIN
Сохраните файл. Хорошо
изменить владельца файла
root, используя
щедрый
команда и
Измените разрешения на файл
с помощью
камин
команда. Только корневой пользователь сможет редактировать файл.
Sudo Chowne root: root /home/minnie/.bash_profile
sudo chmod 755 /home/minnie/.bash_profile
LS -L /home/minnie/.bash_profile
В следующем времени пользователь Minnie входит в систему, ее путь указывает на одну папку.
Наш ограниченный пользователь Minnie может использовать только встроенные команды Bash, как
эхо
С
псевдоним
, а также
выйти
Отказ Она даже не может использовать
облицовка
Действительно
LS
Нам нужно немного ослабить нашу мертвой хватку, если мы хотим, чтобы они могли сделать все полезное вообще. Мы создадим некоторые символические ссылки из каталога Minnie's «Bin» для команд, которые мы хотим, чтобы Минни мог использовать.
sudo ln -s / bin / ls / home / minnie / bin
sudo ln -s / bin / top / home / minnie / bin
sudo ln -s / bin / uptime / home / minnie / bin
sudo ln -s / bin / pinky / home / minnie / bin
Когда Minnie Next входит в систему, она найдет, что она может использовать встроенные команды Bash, а также эти команды, которые были связаны с.
LS
Пинки Дэйв
Время работы
Ограничение существующих пользователей
Мы создали Minnie как нового пользователя. К
изменить оболочку существующего
пользователь, мы можем использовать
-
(оболочка) вариант
usermod.
команда.
Sudo USERMOD -S / BIN / RBASH MARY
Вы можете использовать
меньше
Команда на файле «/ etc / passwd», чтобы быстро увидеть, какую оболочку установлено как оболочка пользователя по умолчанию.
Меньше / etc / passwd
Мы видим, что пользователь Mary будет использовать ограниченную оболочку при следующем входа в систему.
Не забудьте применить другие изменения, чтобы ограничить их
$ Путь
Переменная среды и для установки команд, которые вы хотите, чтобы пользователь Мэри сможет выполнить.
Ограничивая скрипты
Регулярный, неограниченный пользователь может запустить скрипты, выполняемые в ограниченной оболочке. Скопируйте следующие строки и вставьте их в редактор. Сохраните файл как «Restricted.sh» и закройте редактор.
#! / Bin / bash # скрипт начинается в обычной раковине Bash echo "## в неограниченном режиме! ##" эхо Echo "текущий каталог:` pwd` " эхо "смена каталога" CD / USR / Share echo "Сейчас в каталоге:` pwd` " Эхо "Изменение домашнего каталога" CD ~ echo "Сейчас в каталоге:` pwd` " # Настройка ограниченного режима набор -R. эхо echo "## в ограниченном режиме! ##" эхо Echo "текущий каталог:` pwd` " Echo «Изменение каталога на / Главная /» CD / Home echo "Все еще в каталоге:` pwd` " эхо эхо "пытается начать другую раковину" / bin / bash эхо echo "пытается перенаправить вывод команды" ls -l $ home & gt; my_files.txt. cat my_files.txt. эхо Выход 0
Нам нужно использовать
камин
команда с
+ X.
(Выполнить) флаг, чтобы сделать исполняемый файл сценария.
chmod + x restricted.sh
Первая часть скрипта проходит в нормальной оболочке.
./ Ограничено .sh
Вторая часть скрипта - чуть после прогона в строке «SET -R» в ограниченной оболочке.
Ни один из попыток действий не преуспевает в ограниченной части скрипта.
Весь скрипт может быть сделан для запуска в ограниченной оболочке путем добавления
-р
к первой строке:
! # / Bin / Bash -r
Помните Гудини
Ограниченные раковины полезны, но не совсем непогрешимы. Достаточно квалифицированный пользователь может удалить их. Но когда привычно используется, они являются полезным способом установить набор ограничений для определенного счета.