Як змінити права доступу та власника/групу для файлів та каталогів?

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

Перед початком проведення коригування і зміни прав доступу потрібно чітко розуміти, що за що відповідає, адже невірне встановлення може призвести до непрацездатності частин коду і трати купи часу на відкат і відновлення.


Зміна власника/групи для файлів і каталогів

Змінити власника папки/файлу має можливість спеціальний користувач root.  Для цих цілей найбільш часто використовується команда chown, але, як варіант, можливо і через команду find.

chown [власник] [шлях до папки /файлу]

Наприклад, змінимо власника на maria для файлу newdata.txt

chown maria /orders/newdata.txt

chown [: група] [шлях до папки/файлу]

chown [власник: група] [шлях до папки/файлу]

 

Опція -R використовується для рекурсивної зміни прав володіння в повністю всієї директорії (відразу у всіх підкаталогах і для всіх файлів в цих підкаталогах).

chown -R [власник: група] [шлях до папки/файлу]

find [шлях до папки] -type d -exec chown [власник] {} \

find [шлях до папки] -type d -exec chown [: група] {} \

find [шлях до файлу] -type f -exec chown [власник {} \

find [шлях до файлу] -type f -exec chown [: група] {} \

 

Зміна прав доступу для файлів і каталогів

Для зміни прав доступу існує спеціальна команда chmod, за допомогою якої можна в чисельному або в символьному представленні подати права потрібним користувачам на зазначені файли або папки. Можливість надавати права доступу також має власник відповідного файлу/папки. Розглянемо нижче більш детально, почнемо з подачі прав в символьному вигляді, для цього використовуються оператори:

В такому випадку загальний синтаксис команди chmod:

chmod [користувач (і) _оператор_права] [шлях до папки/файлу]

Приклад 1: приберемо для групи користувачів (group, g) право на читання (read, r) файлу newdata.txt

chmod g-r /orders/newdata.txt


Приклад 2: встановимо права на запис (write, w) для всіх  користувачів для файлу newdata.txt

chmod ugo + w /orders/newdata.txt


Приклад 3: встановимо аналогічні права для групи і інших користувачів системи на файл newdata.txt

chmod g = o /orders/newdata.txt


Також тут є додатковий символ a, all - використовується для позначення відразу всіх користувачів.

Приклад 4:  забиремо у всіх користувачів право на читання файлу newdata.txt.

chmod a-r /orders/newdata.txt

При числовому указанні прав синтаксис схожий:

chmod [права] [шлях до папки/файлу]

Приклад 5: у власника є всі права, в групи тільки на запис, і в інших користувачів тільки на читання на файл newdata.txt

chmod 724 /orders/newdata.txt

Приклад 6: для всіх типів користувачів надаємо всі права доступу на файл newdata.txt.

chmod 777 /orders/newdata.txt