В Linux основні рівні доступу визначаються за допомогою таких атрибутів, як read
(читання), write
(запис), і execute
(виконання), які призначені для власника файлу, групи та всіх інших користувачів. Ці рівні доступу відображаються в шість шістнадцяткових символах, які можна побачити за допомогою команди ls -l
в терміналі.
- Перший символ вказує на тип файлу (наприклад,
-
для звичайного файлу, d
для каталогу).
- Наступні три символи відповідають за права доступу власника файлу.
- Потім слідують три символи для прав доступу групи файлу.
- І останні три символи для прав доступу всіх інших користувачів.
Кожен символ може бути одним з трьох: r
для читання (read), w
для запису (write), і x
для виконання (execute). Якщо символ відсутній, це позначається як -
.
Наприклад, якщо ми побачимо щось на кшталт rwxr-xr--
, це означає, що власник файлу має всі права (читання, запис і виконання), група має право на читання і виконання, а всі інші користувачі мають тільки право на читання.
Ці права дуже важливі для забезпечення безпеки в системі Linux, оскільки вони контролюють, хто може читати, записувати або виконувати дані в певних файлах і каталогах.
2 Вподобання
В Linux існує концепція рівнів доступу до файлів та каталогів, яка базується на правах доступу (permissions). Ось деякі основні режими доступу:
- Читання (Read, r): Користувач або група можуть читати вміст файлу або каталогу.
- Запис (Write, w): Користувач або група можуть змінювати вміст файлу або каталогу. Для каталогів це означає додавання або видалення файлів у каталозі.
- Виконання (Execute, x): Для файлів це означає виконання файлу, якщо він є виконуваним. Для каталогів це означає, що користувач або група можуть звертатися до вмісту каталогу.
Ці режими доступу задаються для трьох різних суб’єктів:
- Власник файлу (Owner): Користувач, який створив файл або каталог, має спеціальні права доступу до нього.
- Група (Group): Користувачі, які входять до тієї ж самої групи, що і власник файлу або каталогу, можуть мати окремі права доступу до нього.
- Інші користувачі (Others): Всі інші користувачі, які не є власником файлу або каталогу і не входять до його групи, мають власні права доступу до нього.
Права доступу до файлу або каталогу можна перевірити за допомогою команди ls -l
. Ця команда покаже детальну інформацію про файл або каталог, включаючи його власника, групу, а також режими доступу. Наприклад:
-rw-r--r-- 1 user group 4096 Feb 15 12:00 example.txt
У цьому прикладі перший символ “-” вказує на те, що це файл. Потім йдуть три блоки (rw-, r–, r–), перший для власника, другий для групи, третій для інших користувачів. Власник може читати та писати у файл, група може читати, а інші користувачі також можуть читати.
1 Вподобання
В Linux є можливість встановлювати різні комбінації прав доступу до файлів і каталогів за допомогою режимів доступу. Ось всі можливі комбінації прав доступу:
- Читання (Read, r):
- Дозволяє читати вміст файлу або каталогу.
- Запис (Write, w):
- Дозволяє змінювати вміст файлу або каталогу. Для каталогів це означає можливість додавати або видаляти файли в цьому каталозі.
- Виконання (Execute, x):
- Для файлів: Дозволяє виконувати файл, якщо він є виконуваним.
- Для каталогів: Дозволяє доступ до вмісту каталогу. Без права виконання на каталог, користувач не може звертатися до вмісту цього каталогу, навіть якщо у нього є право читання.
Комбінування цих прав дозволяє створювати різні сценарії доступу:
- Тільки читання (Read-only):
r--
або r-x
(для каталогів).
- Тільки запис (Write-only):
-w-
.
- Читання та запис (Read-write):
rw-
або rwx
(для каталогів).
- Тільки виконання (Execute-only):
--x
(не зовсім звичайний варіант).
- Немає доступу (No access):
---
.
Зверніть увагу, що ці права встановлюються для трьох різних суб’єктів: власника файлу, групи та інших користувачів. Кожен із цих суб’єктів може мати свою власну комбінацію прав доступу до файлу або каталогу.
В Linux режими доступу до файлів та каталогів можна представити як комбінацію чисел та літер, що відображають рівні доступу для власника, групи та інших користувачів. Ось як вони представлені:
- Числове представлення: Кожен рівень доступу може бути представлений як комбінація чисел, де кожне число відповідає певній ролі:
- 4 представляє право читання (r).
- 2 представляє право запису (w).
- 1 представляє право виконання (x).Затим, сума цих чисел представляє рівень доступу до файлу або каталогу. Наприклад:
0
означає відсутність доступу (—).
1
означає тільки виконання (–x).
2
означає тільки запис (-w-).
3
означає запис та виконання (-wx).
4
означає тільки читання (r–).
5
означає читання та виконання (r-x).
6
означає читання та запис (rw-).
7
означає повний доступ (читання, запис та виконання) (rwx).
- Літерне представлення: Крім числового представлення, режим доступу також можна представити як комбінацію літер:
- r представляє право читання (Read).
- w представляє право запису (Write).
- x представляє право виконання (eXecute).
- - використовується, щоб позначити відсутність права.Наприклад,
rwx
вказує на те, що у користувача є права на читання, запис та виконання, а -rw-r--r--
показує, що власник може читати та записувати, а група та інші користувачі можуть тільки читати файл.
Використовуючи числове або літерне представлення, ви можете легко встановлювати та змінювати рівні доступу до файлів та каталогів в Linux.
Ось приклади всіх можливих комбінацій доступу до файлу test.txt
в форматі чисел і літер:
- Числове представлення:
0
(—) - Немає доступу.
1
(–x) - Тільки виконання.
2
(-w-) - Тільки запис.
3
(-wx) - Запис та виконання.
4
(r–) - Тільки читання.
5
(r-x) - Читання та виконання.
6
(rw-) - Читання та запис.
7
(rwx) - Повний доступ (читання, запис, виконання).
- Літерне представлення:
---
- Немає доступу.
--x
- Тільки виконання.
-w-
- Тільки запис.
-wx
- Запис та виконання.
r--
- Тільки читання.
r-x
- Читання та виконання.
rw-
- Читання та запис.
rwx
- Повний доступ (читання, запис, виконання).
Тепер давайте подивимось на конкретні приклади для файлу test.txt
:
rwx------
або 700
- Власник файлу може читати, записувати та виконувати файл, а група та інші користувачі не мають доступу.
rw-r--r--
або 644
- Власник може читати та записувати файл, але не може виконувати його. Група та інші користувачі можуть тільки читати файл.
r--r-----
або 640
- Власник може тільки читати файл, а група може читати та записувати, але інші користувачі не мають доступу до файлу.
rw-rw-rw-
або 666
- Всі користувачі можуть читати та записувати файл, але ніхто не може виконати його.
Ці приклади показують різні режими доступу до файлу test.txt
в залежності від потреб користувача.
ось приклади доступу до файлу test.txt
в літерному представленні:
-rwx------ 1 user group 4096 Feb 15 12:00 test.txt
- Повний доступ лише для власника файлу test.txt
. Ніхто інший не має доступу до цього файлу.
-rw-r--r-- 1 user group 4096 Feb 15 12:00 test.txt
- Власник може читати та писати у файл test.txt
, а група та інші користувачі можуть лише читати.
-r--r----- 1 user group 4096 Feb 15 12:00 test.txt
- Власник може лише читати файл test.txt
, група може читати та писати, але інші користувачі не мають доступу до файлу.
-rw-rw-rw- 1 user group 4096 Feb 15 12:00 test.txt
- Усі користувачі мають право читати та писати у файл test.txt
, оскільки всі права доступу встановлені для власника, групи та інших користувачів.
Ці приклади показують різні комбінації прав доступу до файлу test.txt
для власника, групи та інших користувачів.
ось приклади доступу до файлу test.txt
в числовому представленні:
700
- Повний доступ лише для власника файлу test.txt
. Ніхто інший не має доступу до цього файлу.
644
- Власник може читати та писати у файл test.txt
, а група та інші користувачі можуть лише читати.
640
- Власник може лише читати файл test.txt
, група може читати та писати, але інші користувачі не мають доступу до файлу.
666
- Усі користувачі мають право читати та писати у файл test.txt
, оскільки всі права доступу встановлені для власника, групи та інших користувачів.
Ці приклади показують різні комбінації прав доступу до файлу test.txt
для власника, групи та інших користувачів у числовому представленні.
1 Вподобання
Ще атрибути доступу в системі Linux: SUID, SGID і Sticky-bit:
- SUID (Set User ID):
- SUID - це атрибут файлу, який дозволяє виконувати файл з привілеями власника файлу, незалежно від того, хто запустив файл.
- Коли SUID встановлено на виконуваний файл, він запускається з привілеями власника файлу, а не з привілеями користувача, який його запустив.
- Найчастіше SUID встановлюється на деякі системні команди, які потребують підвищених привілеїв, такі як
passwd
(для зміни пароля) або sudo
(для виконання команд з адміністративними привілеями).
- SGID (Set Group ID):
- SGID - це атрибут, який надає файловому об’єкту ті самі права групи, як і у каталозі, в якому він знаходиться.
- Коли SGID встановлено на каталозі, всі файли, що створюються у цьому каталозі, автоматично отримують групу-власника каталогу, а не групу користувача, який створив файл.
- Це може бути корисно для спільного доступу до файлів між користувачами, щоб уникнути проблем з правами доступу.
- Sticky-bit:
- Sticky-bit - це атрибут, який може бути встановлений на каталозі, щоб заборонити видалення файлів іншим користувачам з каталогу.
- Якщо Sticky-bit встановлено на каталозі, то тільки власник файлу, власник каталогу або root може видалити або перемістити файли в цьому каталозі.
- Зазвичай Sticky-bit використовується для каталогів, що використовуються для зберігання тимчасових файлів (наприклад,
/tmp
), щоб уникнути випадкового видалення чужих файлів.
Ці атрибути дозволяють робити функції управління правами доступу більш гнучкими і безпечними в системі Linux.