Права доступу та типи користувачів до файлів і директорій в ОС Linux
Часто зустрічаються ситуації, коли потрібно змінити власника або права на директорії/файли. В першу чергу, установка потрібних прав доступу і зазначення власника/груп потрібно для того, щоб скрипти, які використовуються на сайті, могли коректно взаємодіяти з файлами цього сайту.
Невірне налаштування може привести до непрацездатності деякого функціоналу або ж повністю всього сайту. Також, якщо надавати занадто багато прав користувачам, це може підвищити ймовірність злому, стандартними правами є значення 755 (в бітовій масці) для директорій і 644 для файлів.
Але для початку трохи розберемося, які взагалі є типи доступів по користувачах, і відповідно які права доступу вони можуть мати в ОС Linux. Це сортування і виділення на типи зроблено з метою надання різних привілеїв і прав користувачам на конкретний файл або каталог. Тим самим Ви можете з легкістю робити обмеження іншим користувачам на використання і доступ до ваших даних.
Типи доступів
І так, типи доступів по користувачах поділяються на:
- власник (user, u) - користувач, який є власником і має можливість змінювати права доступу;
- група (group, g) - якась група користувачів, яка повинна мати певні загальні права на файл / каталог, один і той же користувач може входити в кілька груп одночасно;
- всі інші (other, o) - будь-який користувач, який існує в системі, але не відноситься до ніяких вище перерахованих категорій.
Рівень доступу на зазначення або зміну власника файлів чи створення нових груп користувачів і т.д. має спец-користувач в системі під ім'ям root, так як цьому користувачеві за замовчуванням вже належать усі права і привілеї в управлінні процесами.
Права користувачів
У кожного з цих користувачів можуть бути свої права на провадження певних дій щодо конкретно файлу/ директорії, і діляться вони умовно на 3 типи:
- Права на читання (read, позначається як: r або «4» в бітовій масці) - право читати файл, наприклад, за допомогою текстового редактора або переглядати вміст директорії.
- Права на запис (write, позначається як: w або «2» в бітовій масці) - право робити запис і редагування в файлі, або створювати і видаляти файли в каталозі.
- Право на виконання (execute, позначається як: x або «1» в бітовій масці) - право запускати файл (програму, записану в файлі) або переходити в саму директорію, якщо при цьому немає права на читання, тоді користувач просто не побачить наповнення папки .
Практичний приклад
Розглянемо це на практичному прикладі, використовуючи команду ls -l виведемо на екран список всіх директорій і файлів на сервері з зазначеними до них правами.
На скріншоті вгорі перша буква позначає тип файлу, в Linux існують такі типи файлів:
- - простий файл;
d - директорія;
l - символічне посилання;
c - файл символьного пристрою;
b - файл блочного пристрою;
s - файл локального сокета;
p - канал.
Далі для 3 типів користувачів в установленому порядку по 3 біта для кожного прописуються права на r - читання, w - запис і x - виконання. Тобто по черзі для власника директорії / файлу, потім для групи і потім для всіх інших користувачів.
Всі символи пишуться разом - не розділяються пробілами. Також важливий момент, якщо на місці букви йде прочерк (символ "-") це означає, що для цих користувачів немає зазначеного права.Наприклад, для директорії tmp (див. скріншот) для власника директорії є в наявності повністю всі права, для групи маємо встановлені права на читання і виконання, а для інших користувачів є на читання і виконання. Додатково можна бачити, що відсутні права для групи і інших користувачів на запис.
Числове представлення прав доступу
Всі ці права можна задати не тільки символами, а подати і числами. Для наочності розберемо, як формуються ці стандартні значення 755 і 644, склавши таку таблицю, де в першому рядку будуть вказані в установленому порядку (потрібно саме так, як в таблиці знизу) типи користувачів. У другому-подача через символи, в третьому рядку покажемо, як переводяться символи в чисельний еквівалент. І в четвертому рядку, як формується остаточне значення за всіма 3 типами користувачів, тут буде проводитися підсумовування по трьом отриманим числам.
|
Власник |
Група |
Всі інші користувачі |
Символами |
rwx |
r-x |
r-x |
Числами |
4-2-1 |
4-0-1 |
4-0-1 |
Результат |
4+2+1=7 |
4+0+1=5 |
4+0+1=5 |
Note: Тут 0 - ставиться на місці відсутності права, всі інші числа ми вже розглядали вище.
В результаті права доступу в символьному поданні rwxr-xr-x можна перевести і записати як 755, за аналогією rw-r - r-- задається як 644.
Висновок
У цій статті зібрана основна частина інформації для загального розуміння новачкам, як влаштована робота з файлами в Linux. Якщо ви спостерігаєте у себе проблеми з правами доступу до файлів, у нас на хостингу, фахівці техпідтримки ГіперХост готові 24/7 допомогти налагодити це питання.