Как изменить права доступа и владельца/группу для файлов и каталогов

В этой инструкции разберем как изменять владельца/группу, а также  права доступа к файлам и директориям.  Вступительную теоретическую информацию по этой теме, а именно какие существуют права доступа и пользователи в системе 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