Права доступу та типи користувачів до файлів і директорій в ОС Linux

Автор: Mariia Kholodnitska 22.05.2020 0 56 на прочтение 6 минут


Часто зустрічаються ситуації, коли потрібно змінити власника або права на директорії/файли. В першу чергу, установка потрібних прав доступу і зазначення власника/груп потрібно для того, щоб скрипти, які використовуються на сайті, могли коректно взаємодіяти з  файлами цього сайту.

Невірне налаштування може привести до непрацездатності деякого функціоналу або ж повністю всього сайту. Також, якщо надавати занадто багато прав користувачам, це може підвищити ймовірність злому, стандартними правами є значення 755 (в бітовій масці) для директорій і 644 для файлів.

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

Типи доступів

І так, типи доступів по користувачах поділяються на:

  • власник (user, u) - користувач, який є власником і має можливість змінювати права доступу;
  • група (group, g) - якась група користувачів, яка повинна мати певні загальні права на файл / каталог, один і той же користувач може входити в кілька груп одночасно;
  • всі інші (other, o) - будь-який користувач, який існує в системі, але не відноситься до ніяких вище перерахованих категорій.

Рівень доступу на зазначення  або зміну власника файлів чи створення нових груп користувачів і т.д. має спец-користувач в системі під ім'ям root, так як цьому користувачеві за замовчуванням вже належать усі права і привілеї в управлінні процесами.


Права користувачів

У кожного з цих користувачів можуть бути свої права на провадження певних дій щодо конкретно файлу/ директорії, і діляться вони умовно на 3 типи:

  1. Права на читання (read, позначається як: r або «4» в бітовій масці) - право читати файл, наприклад, за допомогою текстового редактора або переглядати вміст директорії.
  2. Права на запис (write, позначається як: w або «2» в бітовій масці) - право робити запис і редагування в файлі, або створювати і видаляти файли в каталозі.
  3. Право на виконання (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 допомогти налагодити це питання.


Mariia Kholodnitska
Статей: 56
Оцените статью:


Спасибо за отзыв
Рейтинг: 5 из 5 Голосов: 1