Як змінити права доступу та власника/групу для файлів та каталогів?
У цій інструкції спробуємо розібратися, як змінити власника/групу, а також права доступу до файлів та директорій. Ознайомитися з теоретичною інформацію на цю тему, а саме які існують права доступу та користувачі в системі Linux, можна за посиланням в нашій статті тут.
Перед початком проведення коригування і зміни прав доступу потрібно чітко розуміти, що за що відповідає, адже невірне встановлення може призвести до непрацездатності частин коду і трати купи часу на відкат і відновлення.
Зміна власника/групи для файлів і каталогів
Змінити власника папки/файлу має можливість спеціальний користувач root. Для цих цілей найбільш часто використовується команда chown, але, як варіант, можливо і через команду find.
- для зміни власника для папки/файлу
chown [власник] [шлях до папки /файлу]
Наприклад, змінимо власника на maria для файлу newdata.txt
chown maria /orders/newdata.txt
- зміна групи папки/файлу
chown [: група] [шлях до папки/файлу]
- зміна і власника і групи папки/файлу
chown [власник: група] [шлях до папки/файлу]
Опція -R використовується для рекурсивної зміни прав володіння в повністю всієї директорії (відразу у всіх підкаталогах і для всіх файлів в цих підкаталогах).
- рекурсивно змінити власника
chown -R [власник: група] [шлях до папки/файлу]
- через find зміна власника папки
find [шлях до папки] -type d -exec chown [власник] {} \
- аналогічно змінюємо для групи
find [шлях до папки] -type d -exec chown [: група] {} \
- через find зміна власника файлу
find [шлях до файлу] -type f -exec chown [власник {} \
- через find зміна групи
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