Як використовувати обмежену оболонку, щоб обмежити, який користувач Linux може зробити

Mar 25, 2026
Linux,
Fatmawati Achmad Zaenuri / Shutterstock

Обмежена оболонка обмежує те, що може зробити обліковий запис користувача на 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_profile
 sudo chmod 755 /home/minnie/.bash_profile
 ls -l /home/minnie/.bash_profile[ 102]
  

Наступного разу, коли користувач Minnie входить, її шляхи вказує на одну папку.

Наш обмежений користувач Minnie може використовувати лише вбудовані команди Bash ехо , псевдонім і вийти . Вона навіть не може використовувати ls !

 LS 

Нам потрібно трохи послабити нашу подивники трохи, якщо ми хочемо, щоб вони могли взагалі нічого корисного. Ми створимо деякі символічні посилання з каталогу "BIN" Minnie "до команд, які ми хочемо, щоб Minnie мати змогу використовувати.

 sudo ln -s / bin / ls / home / minnie / bin 
 sudo ln -s / bin / top / home / minnie / bin 
 Sudo Ln -s / bin / webtime / home / minnie / bin 
 sudo ln -s / bin / pinky / home / minnie / bin 

Коли Minnie наступні журнали, вона вважає, що вона може використовувати вбудовані команди Bash, а також ці команди, які були пов'язані з.

 LS 
 Pinky 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

Обмежені оболонки корисні, але не зовсім непошкоджені. Достатньо досвідчений користувач може бути в змозі уникнути їх. Але коли використовуються судове значення, вони є корисним способом встановлення сукупності обмежень для певного рахунку.


Linux, - Найпопулярніші статті

Як відновити вилучені файли на Linux з TestDisk

Linux, Nov 18, 2025

Fatmawati Achmad Zaenuri / Shutterstock Ви коли-небудь віддалений файл і відразу ж пошкодував про це? Вам ..


Як використовувати зашифровані паролі в Bash скрипти

Linux, Jun 30, 2025

Фатмаваті Ахмад zaenuri / Shutterstock.com Якщо ви змушені використовувати сценарій Linux для підклю..


Linux виповнюється 30: Як хобі завоював світ

Linux, Sep 17, 2025

Ларрі Евінг і GIMP На 17 вересня 1991 року , Linus torvalds випустив ядро ​​Linux (версія 0.01) впе..


Які недоліки переходу на Linux?

Linux, Oct 27, 2025

Ларрі Евінг і GIMP Linux євангелісти (як я), швидкі, щоб вказати на багато переваг перемикан..


Як оновити Fedora Linux

Linux, Nov 10, 2025

Отже, ви, нарешті, завантажили і встановили Fedora Linux, але тепер ви можете бути здивовані, як ви тримаєте в�..


Як промивати DNS у Linux

Linux, Nov 14, 2025

Ваш досвід перегляду Інтернету повільно на вашому пристрої Linux, чи веб -сайти, які ви відвідуєте застаріли..


Як додати користувача до файлу sudoers у Linux

Linux, Oct 30, 2025

Якщо Судо Команда на Linux отримує вам повідомлення про те, що користувач "немає у файлі Sudoers", вам потр�..


5 функцій Ubuntu Linux, які ви повинні використовувати

Linux, Dec 6, 2025

Ubuntu Linux є багатим і постачається з кураторним вибором попередньо встановленого програмного забезпечення..


Категорії