Обмежена оболонка обмежує те, що може зробити обліковий запис користувача на Linux. Обмежений користувач не може змінити свій каталог, і ви керуєте, які команди вони мають доступ до. Ось як налаштувати обмежену оболонку на Linux.
Обмежені оболонки
Обмежена оболонка не є іншою оболонкою. Це інший режим Стандартна оболонка . Точний Занурювач , Конь , Риба , а інші оболонки можуть бути запущені в обмеженому режимі оболонки. Ми будемо використовувати Bash у цій статті, але ті самі принципи застосовуються до інших оболонок.
Оскільки обмежені оболонки - це лише інший спосіб використання стандартної оболонки, вони легко налаштувати. Немає нічого встановлення, і вони доступні, де Linux є.
Також можуть бути застосовані обмежені оболонки. Це гарантує, що будь-який збиток, який вони можуть спричинити, якщо вони були написані неправильно, обмежуються обмеженням їх обмеженого світу, і що вони не мають доступу до всього комп'ютера.
Незважаючи на те, що обмежені оболонки не повністю втечі. Хтось з достатньою знанням може уникнути обмеженої оболонки. Вони чудово підходять для розміщення безпечних кордонів у повсякденному користувачеві, але не покладайтеся на обмежені оболонки для будь-якої реальної безпеки на виробничу систему.
Пов'язані: Яка різниця між Баш, ЗШ та іншими Linux оболонками?
Обмежений баш
Коли ви запускаєте Bash як обмежена оболонка, користувач має деякі з них, вилучені з них. Зокрема, користувач не може :
-
Використання
компакт-дискзмінити робочий каталог. -
Змінити значення
$ Шлях,$ Оболонка,$ Bash_envабо$ EnvЕкологічні змінні (але вони можуть читати поточні значення). -
Читати або змінити
$ ОболонкиОболонні екологічні варіанти. - Перенаправити вихід команди.
-
Викликайте команди, які вимагають шляху, щоб знайти їх. Тобто, ви не можете видавати команду, яка має одну або декілька казків "
/" у цьому. -
Закликати
виконатизамінити інший процес для оболонки. - Використовуйте будь-яку з обмежених функцій у скрипті.
Ви можете викликати обмежену оболонку Bash, використовуючи
-r
(обмежений) варіант. Спроба зробити просте завдання, як зміна робочого каталогу, заборонено. Тверне повідомлення говорить вам, що
компакт-диск
обмежено.
bash -r
CD-документи
Shell Shell також може виявити, коли він був викликаний за допомогою "RBash" замість "Bash". Це змушує його почати як обмежену оболонку. Це забезпечує зручний спосіб встановити оболонку за замовчуванням для конкретного користувача, який ми будемо використовувати найближчим часом.
Якщо ми використовуємо
де
команду на Ubuntu шукати
розгул
Файли, ми побачимо, що виконуваний файл знаходиться в каталозі "USR / BIN". Сторінка людини знаходиться в каталозі "/ usr / share / man / man1".
За допомогою
ls
команду з
-L
(довгий) варіант показує це
розгул
є
фактично символічна посилання
до
занурювач
.
де Rbash
LS -L / usr / bin / rbash
На Манджаро і Федора,
розгул
Символічний зв'язок повинен був створити. Це працює з обох дистрибутивів:
де Rbash
Sudo LN -S / bin / bash / bin / rbash
де Rbash
Другий раз ми використовуємо
де
Команда, вона знаходить
розгул
У каталозі "/ usr / bin".
Обмеження користувача
Давайте
Створіть новий обліковий запис користувача
названий "Мінні". Ми встановимо їхню оболонку, щоб бути обмеженою оболонкою, використовуючи
уперед
(оболонка) варіант
useradd
Команда. Ми також
Встановіть пароль облікового запису
за допомогою
пас
команду, і ми створимо для них домашню папку.
Точний
-п
(батьки) прапор у
mkdir
Команда говорить
mkdir
Щоб створити цільовий каталог та будь-які материнські каталоги, що йому потрібно створити теж. Таким чином, створюючи каталог "/ 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
Це не поведінка, яку ви могли б очікувати, і це, безумовно, не те, що ми хочемо. Щоб посилити обмеження далі, нам потрібно змінити шлях, який Shell Minnie буде використовувати для пошуку команд.
Затягування обмежень
Коли ми створили домашній каталог Minnie "/ Home / Minnie", ми також створили каталог "/ Home / Minnie / Bin". Тут, де входить довідник.
Ми будемо редагувати файл Minnie's ".bash_profile" та встановити свій шлях, щоб вказати лише до цього каталогу. Ми також обмежимо файл Minnie's ".bash_profile", щоб тільки редагувати його. Це означає, що жоден інший користувач не може відредагувати цей файл і змінити свій шлях.
sudo gedit /home/minnie/.bash_profile[ 102]
![]()
Або редагувати існуючий "шлях =" або додати наступний рядок:
Шлях = $ home / bin
![]()
Зберегти файл. Добре змінити власника файлу до кореня за допомогою
сумнийкомандувати і Змініть дозволи на файл за допомогоюхмодКоманда. Тільки кореневий користувач зможе відредагувати файл.Sudo chown root: root /home/minnie/.bash_profilesudo chmod 755 /home/minnie/.bash_profilels -l /home/minnie/.bash_profile[ 102]
![]()
Наступного разу, коли користувач Minnie входить, її шляхи вказує на одну папку.
![]()
Наш обмежений користувач Minnie може використовувати лише вбудовані команди Bash
ехо,псевдонімівийти. Вона навіть не може використовуватиls!LS
![]()
Нам потрібно трохи послабити нашу подивники трохи, якщо ми хочемо, щоб вони могли взагалі нічого корисного. Ми створимо деякі символічні посилання з каталогу "BIN" Minnie "до команд, які ми хочемо, щоб Minnie мати змогу використовувати.
sudo ln -s / bin / ls / home / minnie / binsudo ln -s / bin / top / home / minnie / binSudo Ln -s / bin / webtime / home / minnie / binsudo ln -s / bin / pinky / home / minnie / bin
![]()
Коли Minnie наступні журнали, вона вважає, що вона може використовувати вбудовані команди Bash, а також ці команди, які були пов'язані з.
LSPinky DaveЧас роботи
![]()
Обмеження існуючих користувачів
Ми створили Minnie як нового користувача. До змінити оболонку існуючого Користувач, ми можемо використовувати
уперед(оболонка) варіантумовлянняКоманда.Sudo Usermod -s / bin / rbash mary
![]()
Ви можете використовувати
меншКоманда на файлі "/ etc / passwd", щоб швидко побачити, яку оболонку встановлюється як оболонка за замовчуванням користувача.менше / etc / passwd
![]()
Ми можемо бачити, що користувач мері буде використовувати обмежену оболонку, коли вона потім журнали в.
![]()
Не забудьте застосувати інші зміни обмежують їх
$ Шляхзмінна оточення і задати команди, які ви хочете мері, щоб користувач міг виконати.обмеження сценаріїв
Регулярний, необмежений користувач може запускати скрипти, виконані в обмеженій оболонці. Скопіюйте наступні рядки та вставте їх у редактор. Збережіть файл як "обмежено.sh" і закрийте редактор.
#! / Bin / bash # Сценарій починається з нормальної оболонки Баш echo "## в необмеженому режимі! ##" ехо echo "Поточний каталог:` pwd` " echo "Зміна каталогу" CD / USR / Share echo "зараз в каталозі:` pwd` " echo "Зміна до домашнього каталогу" cd ~ echo "зараз в каталозі:` pwd` " # Встановлення обмеженого режиму набір ехо echo "## в обмеженому режимі! ##" ехо echo "Поточний каталог:` pwd` " echo "Зміна каталогу / home /" CD / HOME echo "ще в каталозі:` pwd` " ехо echo "намагається почати іншу оболонку" / bin / bash ехо echo "намагається перенаправити команду" ls -l $ home & gt; my_files.txt cat my_files.txt ехо Вихід 0Ми повинні використовувати
хмодкоманду з+ x(Виконайте) прапорець, щоб зробити виконуваний скрипт.chmod + x обмежена .sh
![]()
Перша частина скрипту працює в нормальному оболонці.
./ Обмежений.Sh
![]()
Друга частина сценарію - трохи після "set -r" лінійки в обмеженій оболонці.
![]()
Жоден з спроб дій не досягає успіху в обмеженій частині сценарію.
Цілий сценарій можна зробити, щоб запустити в обмеженій оболонці шляхом додавання
-rдо першого рядка:! # / Bin / bash -rПам'ятайте Houdini
Обмежені оболонки корисні, але не зовсім непошкоджені. Достатньо досвідчений користувач може бути в змозі уникнути їх. Але коли використовуються судове значення, вони є корисним способом встановлення сукупності обмежень для певного рахунку.