Операційна система Linux, як багатокористувацька платформа, надає можливість кільком користувачам одночасно працювати з одним комп’ютером. З огляду на це, важливим аспектом є забезпечення безпеки та конфіденційності даних кожного користувача.
Для цього Linux використовує складну систему дозволів, яка регулює доступ до файлів і каталогів. Завдяки цій системі, користувачі можуть контролювати, які інші користувачі мають доступ до їхніх файлів, а також які дії вони можуть виконувати на комп’ютері.
Кожному користувачеві Linux важливо розуміти, як працює система дозволів, і як використовувати різні типи дозволів для захисту своїх файлів та забезпечення належного функціонування комп’ютера. Для цього, розглянемо спочатку категорії користувачів в операційній системі Linux.
Категорії користувачів у Linux
У Linux існують три основні категорії користувачів:
Власник (user): Кожен файл або каталог має одного власника. Зазвичай власник має більше прав доступу до свого файлу або каталогу. Власник позначається літерою ‘u’.
Група (group): Користувачі можуть бути об’єднані в групи, і дозволи можуть бути надані групі як цілому. Власник групи позначається літерою ‘g’. Наприклад, якщо вам потрібно надати кільком користувачам однаковий доступ до файлу зі списками книг, можна створити групу і надати дозволи цій групі.
Інші (others): До цієї категорії належать всі користувачі, які не є власниками файлу та не входять до групи, яка має дозволи на цей файл. Інші користувачі позначаються літерою ‘o’.
Крім того, іноді використовується позначення ‘a’, що означає “всі”, тобто всі користувачі на комп’ютері, включно з власниками, членами груп та іншими.
Створення нового користувача в Ubuntu Linux
Розглянемо процес створення нового користувача в Ubuntu Linux:
- Відкрийте “Параметри” та перейдіть до розділу “Користувачі”. Натисніть “Розблокувати” і введіть свій пароль. Ця дія необхідна для додавання нового користувача.
- Після розблокування з’явиться кнопка “Додати користувача”. Натисніть її.
- Введіть повне ім’я та ім’я користувача, виберіть “Встановити пароль зараз” і задайте пароль. Переконайтеся, що тип облікового запису встановлено на “Адміністратор”, а потім натисніть “Додати”.
- Після цього новий користувач має з’явитися в списку користувачів.
Дозволи на файли та каталоги в Linux
Дозволи визначають, хто і які дії може виконувати з файлами та каталогами. Існує три основні типи дозволів:
- Читання (r): Дозволяє переглядати вміст файлу або список файлів у каталозі.
- Запис (w): Дозволяє змінювати вміст файлу. Для каталогів дозволяє створювати, видаляти, перейменовувати та переміщувати файли та підкаталоги. Дозвіл на запис для каталогу працює лише при наявності дозволу на виконання.
- Виконання (x): Для файлів означає, що файл можна запустити як програму. Для каталогів дозволяє входити в каталог за допомогою команди ‘cd’.
Ці дозволи призначаються для трьох вищезазначених категорій користувачів (власник, група, інші).
Розширений перелік (long listing) в Linux
Команда ls
використовується для перегляду вмісту каталогу. Однак, щоб отримати детальну інформацію, використовується формат довгого списку, який викликається командою ls -l
. Ця команда показує дозволи, власника файлу та групу власників.
У Ubuntu, за замовчуванням, якщо не було створено іншу групу, назва групи збігається з назвою власника файлу.
Для створення групи використовується команда addgroup
. Наприклад, для створення групи “редактори” використовуємо:
sudo addgroup editors
Команда sudo
дозволяє виконувати команди від імені суперкористувача (root), який має право вносити зміни в систему.
Щоб додати користувача до групи, використовуємо такий синтаксис:
adduser <user> <group>
Наприклад, для додавання користувачів belmont і madici до групи “редактори”:
sudo adduser belmont editors
sudo adduser madici editors
Щоб переглянути групи, до яких належить користувач:
groups <username>
Атрибути файлів у Linux
Атрибути файлу в Linux складаються з десяти символів. Перший символ вказує на тип файлу:
- d – каталог
- – – звичайний файл
- c – символьний спеціальний файл
- l – символічне посилання
- b – спеціальний файл блоку
Решта дев’ять символів визначають дозволи для власника, групи та інших. Ці дев’ять символів поділені на три групи по три: дозволи для власника, дозволи для групи, дозволи для інших. У кожній групі порядок дозволів такий: читання (r), запис (w), виконання (x). Символ ‘-‘ означає відсутність відповідного дозволу.
Зміна дозволів за допомогою символьної нотації
Для зміни дозволів використовується команда chmod
. Символьна нотація дозволяє задавати дозволи для користувача (u), групи (g), інших (o), або всіх (a).
Для додавання дозволу використовується символ ‘+’, для видалення – символ ‘-‘. Потім вказуються дозволи, які потрібно додати чи видалити: r (читання), w (запис), x (виконання).
Створимо каталог books:
mkdir books
Перейдемо до цього каталогу:
cd books
Створимо файл readingList.txt:
touch readingList.txt
Переглянемо дозволи за допомогою довгого списку:
ls -l
Щоб надати іншим користувачам дозвіл на запис у файл:
chmod o+w readingList.txt
Щоб перевірити зміни, знову використовуємо ls -l
:
Зверніть увагу, що дозвіл для інших користувачів змінився з r– на rw-.
Щоб додати права на виконання для власника:
chmod u+x readingList.txt
Щоб видалити дозволи на запис для групи:
chmod g-w readingList.txt
Щоб видалити дозволи на читання для всіх користувачів:
chmod a-r readingList.txt
Щоб повернути дозвіл на читання для власника:
chmod u+r readingList.txt
Щоб додати дозволи на запис і виконання для групи:
chmod g+wx readingList.txt
Зміна дозволів за допомогою вісімкової нотації
Кожен дозвіл може бути увімкнений (1) або вимкнений (0). Це можна представити за допомогою двійкової системи, де кожна група дозволів (читання, запис, виконання) складається з трьох бітів. Таким чином, rwx буде представлено як 111, а rw- як 110.
Для зручності використання двійкових чисел, можна скористатися вісімковою системою. Кожне вісімкове число (від 0 до 7) відповідає трьом двійковим бітам. Це дозволяє компактно задавати дозволи для власника, групи та інших.
Наприклад, rwxrwxrwx можна представити як 777, де кожна сімка (111) відповідає дозволам для власника, групи та інших.
Щоб надати всім користувачам дозволи на читання, запис та виконання:
chmod 777 readingList.txt
Перевіряємо зміни:
ls -l
Вивід:
total 0 -rwxrwxrwx 1 madici madici 0 Sep 6 05:45 readingList.txt
Щоб видалити дозвіл на запис для групи та інших:
chmod 755 readingList.txt
Щоб вилучити дозвіл на виконання від власника та інших:
chmod 654 readingList.txt
Спеціальні дозволи в Linux
В Linux існують спеціальні дозволи, які надають додаткові можливості керування доступом:
- Set User ID (SUID): Дозволяє користувачеві запускати файл з правами власника файлу.
- Set Group ID (SGID): Дозволяє користувачеві запускати файл з правами групи власника файлу.
- Sticky bit: Зазвичай використовується для каталогів, обмежуючи видалення файлів в каталозі лише їхніми власниками, власником каталогу або користувачем root.
Висновок
Розуміння системи дозволів є критично важливим для безпечної та ефективної роботи з Linux, навіть якщо на комп’ютері є лише один користувач. Завжди практикуйтеся з цими навичками, щоб впевнено керувати доступами до файлів.
Також, ви можете ознайомитись з тим, як використовувати команди Linux у Windows.