У цій статті ми дослідимо важливість належної організації користувачів Linux. Ми опишемо права доступу, починаючи зі створення та налаштування користувачів і закінчуючи наданням доступу до певних файлів і папок. Ми також обговоримо деякі важливі засоби безпеки, такі як sudo та SELinux, які допомагають захистити систему від небажаної активності.
Важливість керування користувачами та прав доступу в Linux
У світі Linux керування користувачами та права доступу відіграють ключову роль. Уявіть собі Linux як велику квартиру, де кожен користувач є мешканцем, а кожен файл – кімнатою. Керування користувачами – це як призначення кожному мешканцю унікального ключа, тоді як права доступу – це те, що вони можуть робити у своїй кімнаті.
Коли користувача створюється, йому присвоюється ім'я та унікальний ідентифікатор ( UID ), як-от персональний ключ від квартири. Користувач також має групу , яка об'єднує його з іншими мешканцями. Група подібна до клубу, учасники якого мають спільні привілеї.
Права доступу до файлів поділяються на три категорії: власник ( користувач ), група та інші . Кожен ключ (користувач) може мати свої унікальні права на читання, запис та виконання для кожної категорії. Наприклад, власник файлу може мати права на читання та запис, група – лише на читання, а інші – нічого.
На особливу увагу заслуговують політики безпеки, такі як sudo та SELinux , що використовуються в системах Linux. Sudo — це спеціальна команда, яка дозволяє звичайним користувачам тимчасово використовувати права суперкористувача (root) для виконання певних завдань, які зазвичай доступні лише адміністраторам. Це допомагає запобігти випадковим помилкам або зловживанню правами суперкористувача. Під час використання sudo користувач зазвичай повинен ввести свій пароль для підтвердження своєї особи. Після цього він може виконувати команди з правами суперкористувача (root) відповідно до правил, встановлених у файлі sudoers.
SELinux — це додатковий рівень безпеки для операційної системи Linux. Він контролює, які програми та файли можна використовувати в системі, та обмежує доступ до них, щоб запобігти вторгненням та атакам. Це робить сервер більш безпечним, запобігаючи спробам злому або зловмисним діям.
Створення та керування користувачами
Як створити користувача в Linux
Користувачі Linux зазвичай створюються за допомогою команди useradd . Наприклад, щоб створити користувача з ім'ям "username", потрібно ввести:
useradd username
Як встановити пароль користувача Linux
Після створення користувача його обліковий запис не захищається паролем. Щоб встановити пароль для нового користувача, скористайтеся командою passwd :
passwd username
Де ім'я користувача - це ім'я користувача, для якого встановлюється пароль.
Як переглянути список користувачів у Linux
Щоб переглянути список користувачів у Linux за допомогою однієї команди в терміналі, можна скористатися командою cut :
cut -d: -f1 /etc/passwd
Ця команда зчитує вміст файлу /etc/passwd , який містить інформацію про всіх користувачів.
Щоб отримати інформацію про конкретного користувача, можна скористатися командою:
id username
Це відобразить UID користувача , GID та Groups.
Видалення користувача Linux
Щоб видалити користувача, скористайтеся командою userdel :
userdel username
Однак ця команда не видаляє файли в домашньому каталозі користувача. Щоб видалити їх, можна скористатися параметром -r :
userdel -r username
Це призведе до видалення імені користувача разом із його домашнім каталогом і всіма файлами в ньому.
Зміна користувача Linux
Щоб змінити інформацію про користувача, скористайтеся командою usermod . Інструмент використовує синтаксис:
usermod argument user
Повний список можливих аргументів наведено в довідці утиліти:
Наприклад, щоб змінити домашній каталог користувача, ви повинні використати команду:
usermod -d /new/path/to/directory username
Створення та керування групами користувачів у Linux
Групи користувачів у Linux дозволяють адміністраторам групувати користувачів із однаковими правами доступу. Це полегшує керування правами доступу та підвищує безпеку системи, дозволяючи встановлювати права на рівні групи, а не для кожного користувача окремо. Як приклад розглянемо групу розробників з користувачем admin.
Як створити групу користувачів у Linux
Щоб створити нову групу, скористайтеся командою groupadd з назвою нової групи:
sudo groupadd group_name
У нашому прикладі команда виглядатиме так:
sudo groupadd developers
Як видалити групу користувачів у Linux
Щоб видалити групу, скористайтеся командою groupdel :
sudo groupdel group_name
Отже, команда:
sudo groupdel developers
Групу з назвою розробники буде видалено.
Додавання користувачів до групи
Щоб додати користувача до певної групи, скористайтеся командою usermod :
sudo usermod -aG group_name user_name
Наприклад:
sudo usermod -aG developers admin
Ця команда додасть користувача з ім'ям admin до групи розробників.
Видалення користувачів із групи
Щоб видалити користувача з групи, скористайтеся командою deluser :
sudo deluser user_name group_name
Команда для видалення користувача admin з групи розробників :
sudo deluser admin developers
Перегляд списків груп у Linux
Щоб переглянути список усіх груп у системі, скористайтеся командою cat з файлом /etc/group :
cat /etc/group
Ця команда відобразить список усіх груп у системі.
Перевірка членства в групі користувачів
Після виконання дій можна перевірити, до яких груп належить користувач, за допомогою команди groups:
groups user_name
Отже, ми дослідили основи керування групами користувачів у Linux. Тепер переходимо до наступного етапу – вивчення призначення прав доступу до файлів і каталогів. Цей процес дозволяє визначити, які дії користувачі або групи можуть виконувати щодо конкретних файлів і каталогів, забезпечуючи ефективне управління безпекою та доступ до системних ресурсів.
Призначення прав доступу до файлів і каталогів
Символічне представлення прав доступу
Як ми вже з'ясували, у Linux існує 3 категорії користувачів: власник ( user ), група та інші . Кожен з них може мати певні групи доступу до файлів або каталогів:
- Читати (Читати - r): Дозволяє переглядати вміст файлу або каталогу.
- Запис (Write - w): Надає можливість змінювати файл або створювати новий файл у каталозі. Для каталогу це також дозволяє видаляти файли з нього.
- Виконати (Execute - x): дозволяє запустити файл (якщо це виконуваний файл) або увійти до каталогу (якщо це каталог).
У системах сімейства Linux права доступу представлені рядком із 10 символів. Перший символ вказує на тип файлу (звичайний файл, каталог тощо), а решта дев'ять - це три групи по три символи для кожної з груп користувачів. Для розуміння розглянемо приклад.
Права доступу -rwxr-x-- означають:
- Перший символ (-) вказує на тип файлу (в даному випадку звичайний файл).
- Три символи для власника (rwx) показують, що власник має права на читання, запис і виконання.
- Три символи для групи (rx) вказують на те, що члени групи мають права лише на читання та виконання.
- Три символи для інших (r--) означають, що інші користувачі можуть лише читати файл.
Права доступу встановлюються за допомогою команди chmod , а синтаксис виглядає наступним чином:
chmod [options] mode file(s)
де:
- [параметри] - додаткові параметри, такі як -R для рекурсивної зміни прав доступу до каталогу та його підкаталогів.
- mode - спеціальний рядок, який визначає, які права доступу змінюються і для кого. Режим можна вказати символами (r, w, x) і бітами (0 або 1). Також можна використовувати числові значення режиму (про них ми поговоримо пізніше)
- файл(и) - файли або каталоги, до яких застосовано зміни.
Ця утиліта є досить потужним інструментом, тому ми розглянемо лише кілька основних команд як приклад.
Змініть права доступу до файлу так, щоб власник мав права читання та запису, група мала права лише читання, а інші користувачі не мали прав:
chmod u=rw,g=r,o= filename
Встановити права доступу для всіх користувачів на читання та запис у файл:
chmod a+rw filename
Рекурсивно змінити права доступу для всіх файлів і підкаталогів у каталозі:
chmod -R u+rwx directory
Числове представлення прав доступу
У числовому представленні кожна категорія користувачів (власник, група, інші) має свій номер, а комбінація цих чисел задає остаточні права доступу. Подібно до символічних, кожне з трьох прав має своє значення, але в числовому вигляді:
- Read (читати) - значення 4
- Write (записати) - значення 2
- Execute (виконати) - значення 1
Числові значення також використовуються для визначення типу користувача:
- Власник файлу (користувач) - перша цифра
- Група власника (група) - друга цифра
- Інші користувачі (інші) - третя цифра
Таким чином, повне числове представлення прав доступу до файлів складається з трьох цифр, кожна з яких представляє суму значень прав для певної категорії користувачів. Це дещо зручніше, ніж використання 10 символів у символьному представленні. Управління в цьому випадку буде виглядати наступним чином:
chmod XYZ file
де X , Y та Z – числа, що представляють права доступу для власника, групи та інших користувачів відповідно.
Наприклад, щоб надати власнику повний доступ (читати, писати та виконувати), а групі та іншим користувачам – лише читати та виконувати, можна використати команду:
chmod 755 file
Розглянемо інші приклади:
chmod 700 file
Тільки власник має права на читання, запис і виконання, тоді як група та інші користувачі не мають прав доступу.
chmod 644 file
Власник має право читати та писати, тоді як група та інші користувачі мають права лише читати.
chmod 751 file
Власник має повні права, група має права на читання та виконання, а інші користувачі мають лише права на виконання.
Як ми вже згадували раніше, інструмент має дуже широкий функціонал. У деяких випадках опцій, доступних у розділі «допомога», недостатньо:
Зверніть увагу на останній рядок. Використання цієї команди відкриває детальнішу документацію щодо інструменту. Ви також можете відвідати офіційну сторінку утиліти у Вікіпедії, де можна знайти детальну інформацію про Chmod.
Висновок
Користувачі Linux і керування ними критично важливі для безпеки та стабільної роботи ОС. У цій статті ми підкреслили важливість ефективного керування користувачами та правами доступу в Linux, охоплюючи створення та керування користувачами, роботу з групами користувачів і призначення прав доступу до файлів і каталогів.