Как использовать ограниченную оболочку, чтобы ограничить, что может сделать пользователь Linux

Mar 25, 2025
Linux,
Fatmawati Achmad Zaenuri / Shutterstock

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

Помните Гудини

Ограниченные раковины полезны, но не совсем непогрешимы. Достаточно квалифицированный пользователь может удалить их. Но когда привычно используется, они являются полезным способом установить набор ограничений для определенного счета.


Linux, - Самые популярные статьи

Как использовать «здесь документы» в Bash на Linux

Linux, Mar 31, 2025

Fatmawati Achmad Zaenuri / Shutterstock Странно названные «здесь документы» позволяют использовать пер�..


Как обновить Arch Linux

Linux, Jul 30, 2025

Проект Ubuntu Пришло время обновить свою систему Arch Linux? Будь вы на чистой арке или в арке ..


Как выключить компьютер Ubuntu

Linux, Oct 12, 2025

Как и все персональные компьютеры, компьютер работает Ubuntu Операционная система настольных комп�..


Что нового в Ubuntu 21.10 'Impish Indri'

Linux, Oct 14, 2025

Канонический Ubuntu 21.10 "Согласил indri" было выпущенный 14 октября 2021 года. Это особенно�..


Как установить Linux на M1 Mac с Apple Silicon

Linux, Nov 11, 2024

Новая поддержка Linux для новой архитектуры на основе Apple еще не готова, но вы можете запустить Linux на M1..


Как иметь дело с пробелами в именах файлов на Linux

Linux, Dec 14, 2024

Как и большинство операционных систем, Linux поддерживает имена файлов с пробелами в них. Но использование �..


Как интегрировать приложения и сценарии на рабочий стол Linux

Linux, Oct 10, 2025

На Linux приложение без настольного файла не будет интегрироваться с вашей средой рабочего стола. Большинс�..


10 полезных примеров команды Linux rsync

Linux, Oct 24, 2025

Linux rsync Команда - это мощный инструмент копирования и синхронизации папок. Вот десять общих случаев �..


Категории