Linux рекурсивное изменение прав доступа

Как установить права на файлы/папки рекурсивно в Linux

Слово рекурсия подходящее слово для того чтобы охарактеризовать работу этой команды по смене прав. Однако не всем знаком этот термин, полагаю можно не вдаваться в подробности, а просто сказать, что разговор идет о том, как можно сменить права доступа на директорию, а так же все вложенные директории и файлы.

Итак, для смены прав будет использоваться всё та же команда chmod, однако к ней будет добавлен параметр –R, который собственно и указывает на то, что необходимо сменить права не только самой директории, но и на вложенные папки и файлы.

Меняем права на директорию /home/qwerty, а так же на всё содержимое директории.

Цифра 755 содержит три атрибута, которые можно растолковать так:

7 — rwx — читать, писать, выполнять
6 — rw- — читать, писать
5 — r-x — читать, выполнять
4 — r— — читать
3 — -wx — писать, выполнять
2 — -w- — писать
1 — —x — выполнять
0 — — — ничего нельзя делать

Три цифры – три отдельных атрибута, первая – права для пользователя, вторая – права для группы, третья – права для остальных.

Кроме всего этого, можно по аналогии, как и с правами, сменить владельца каталогов и файлов в директории. Для этого достаточно воспользоваться командой chown с параметром –R.

chown –R qwerty:users /home/qwerty

Данная команда сменит владельца директории /home/qwerty, а так же все вложенные директории и файлы.

Источник

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

Если вы используете Linux в качестве основной операционной системы или управляете серверами Linux, вы столкнетесь с ситуацией, когда попытаетесь создать или отредактировать файл и получите ошибку «Permission deny». Как правило, ошибки, связанные с недостаточными разрешениями, можно решить, установив правильные права доступа или владельца .

Linux — это многопользовательская система, и доступ к файлам контролируется с помощью разрешений, атрибутов и владельцев файлов. Это гарантирует, что только авторизованные пользователи и процессы могут получить доступ к файлам и каталогам.

Для получения дополнительной информации о правах доступа к файлам см. «Команда Umask в Linux» .

В этой статье мы объясним, как рекурсивно изменять права доступа к файлам и каталогам.

Chmod Рекурсивный

Команда chmod позволяет изменять права доступа к файлам в символьном или числовом режиме.

Чтобы рекурсивно работать со всеми файлами и каталогами в данном каталоге, используйте команду chmod с параметром -R , ( —recursive ). Общий синтаксис для рекурсивного изменения прав доступа к файлу следующий:

Читайте также:  Посмотреть всех пользователей группы linux

Например, чтобы изменить права доступа для всех файлов и подкаталогов в каталоге /var/www/html на 755 вы должны использовать:

Режим также можно указать с помощью символьного метода:

chmod -R u=rwx,go=rx /var/www/html

Только root, владелец файла или пользователь с привилегиями sudo могут изменять права доступа к файлу. Будьте особенно осторожны при рекурсивном изменении разрешений файлов.

Использование команды find

Как правило, файлы и каталоги не должны иметь одинаковые разрешения. Большинству файлов не требуется разрешение на выполнение, тогда как вы должны установить разрешения на выполнение для каталогов, чтобы изменить их.

Наиболее распространенный сценарий — рекурсивное изменение разрешений файла веб-сайта на 644 и разрешений каталога на 755 .

find /var/www/html -type d -exec chmod 755 <> ;find /var/www/html -type f -exec chmod 644 <> ;
find /var/www/html -type d -exec chmod u=rwx,go=rx <> ;find /var/www/html -type f -exec chmod u=rw,go=r <> ;

Команда find ищет файлы или каталоги в /var/www/html и передает каждый найденный файл или каталог команде chmod для установки разрешений.

При использовании find с -exec команда chmod запускается для каждой найденной записи. Используйте команду xargs чтобы ускорить операцию, передав сразу несколько записей:

find /var/www/html -type d -print0 | xargs -0 chmod 755 find /var/www/html -type f -print0 | xargs -0 chmod 644

Выводы

Команда chmod с параметрами -R позволяет рекурсивно изменять права доступа к файлу.

Чтобы рекурсивно установить разрешения для файлов в зависимости от их типа, используйте chmod в сочетании с командой find .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.

Источник

Команда chmod в Linux

Команда chmod в Linux

Команда chmod, команда chown и команда chgrp.

Команда chmod

Команда chmod предназначена для изменения прав доступа файлов и директорий в Linux. Название команды произошло от словосочетания «change mode».

Синтаксис команды chmod следующий:

chmod разрешения имя_файла

Разрешения можно задавать двумя способами:

Изменение прав доступа командой chmod

Запись прав доступа числом

В данном формате права доступа задаются не символами rwx, как описано выше, а трехзначным числом. Каждая цифра числа означает определенный набор прав доступа.

  • Первая цифра используется для указания прав доступа для пользователя.
  • Вторая цифра для группы.
  • Третья для всех остальных.

В таблице ниже приводятся все возможные комбинации разрешений rwx и соответсвующие им числа (которые используются в команде chmod):

Число Разрешения Символьное обозначение
0 разрешения отсутствуют
1 x — запуск —x
2 w — изменение -w-
3 x+w — запуск+изменение -wx
4 r — чтение r—
5 r+x — чтение+запуск r-x
6 r+w — чтение+изменение rw-
7 r+w+x — чтение+изменение+запуск rwx

Рассмотрим использование команды chmod с записью прав доступа числом на примере. Установим для файла права доступа 764:

Это означает (см. таблицу выше), что для файла myfile мы устанавливаем права доступа 7 6 4 , которые означают:

  • 7 — права для владельца-пользователя. Владелец файла может читать, изменять и запускать файл (r+w+x).
  • 6 — права для группы. Пользователи, которые принадлежат группе могут читать и изменять файл (r+w).
  • 4 — права для всех остальных. Все остальные могут только читать файл (r).
Читайте также:  Deleting directory with files in linux

Если записать 764 с помощью символов (см. таблицу), то мы получим: «rwxrw-r-».

Команда chmod

В таблице ниже приведены некоторые часто используемые значения числовых значений прав доступа:

Числовое
обозначение
«rwx»-обозначение Описание
400 -r——— Владелец файла может только читать файл. Для всех остальных все действия с файлом запрещены.
644 -rw-r—r— Все пользователи могут читать файл. Владелец может изменять файл.
660 -rw-rw—- Владелец и группа могут читать и изменять файл. Для всех остальных все действия с файлом запрещены.
664 -rw-rw-r— Все могут читать файл. Владелец и группа могут изменять.
666 -rw-rw-rw- Все могут читать и изменять файл.
700 -rwx—— Владелец может читать, изменять и запускать файл. Для всех остальных все действия с файлом запрещены.
744 -rwxr—r— Все могут читать файл. Владелец может также изменять и запускать файл.
755 -rwxr-xr-x Все могут читать и запускать файл. Владелец может также изменять файл.
777 -rwxrwxrwx Все пользователи могут читать, изменять и редактировать файл.

Запись прав доступа символами

chmod +x myfile1 chmod g=rw myfile2 chmod u-w myfile3

Как вы можете видеть, в данном формате права доступа задаются символами rwx, но в синтаксисе используются и другие вспомогательные символы, например, математические операции «+» и «» и такие символы как, например, «g» или «u».

Общий синтаксис можно записать примерно так:

chmod (владелец)(математическая операция)(разрешения) имя_файла

Обозначения для владельцев файла следующие:

Обозначение Описание
u Владелец-пользователь.
g Группа.
o Все остальные.
a Вообще все.

Математические операции означают следующее:

Оператор Описание
+ Добавляет к текущим правам доступа новое разрешение.
Удаляет из текущих прав доступа определенное разрешение.
= Устанавливает полностью новые разрешения (предыдущие перезаписываются новыми).

В одной команде можно перечислять владельцев и их разрешения через запятую (см. пример ниже).

Рекурсивное изменение прав доступа

Если необходимо изменить права доступа на все файлы в директории, включая вложенные директории, то для этого существует опция -R, что означает рекурсивное изменение прав доступа для директорий и их содержимого. Например, изменим права доступа у всех файлов в директории Mydir:

И еще один момент. Если пользователь не является владельцем файла, но ему нужно изменить права доступа у данного файла, то команду chmod необходимо выполнять с использованием sudo, например:

Видео-обзор команды chmod

Команда chown — изменение владельца и группы

Для изменения владельца и группы файла используется команда chown.

Для изменения владельца файла используется следующий синтаксис:

chown новый_владелец имя_файла

Например, установим для файла myfile нового владельца vasya:

Для изменения владельца и группы файла используется следующий синтаксис:

chown новый_владелец:новая_группа имя_файла

Например, установим для файла myfile нового владельца vasya и группу sambashare:

chown vasya:sambashare myfile

Команда chgrp — изменение группы

Есть еще одна команда — chgrp. Она позволяет изменить только группу. Например:

Резюме

В Linux у каждого файла есть права доступа — это разрешения, владелец и группа.

Читайте также:  Zip folder with files linux

Разрешения задаются для владельца, группы и для всех остальных.

Есть три вида разрешений — r — чтение, w — изменение, x — запуск.

Чтобы изменить разрешения у файла используется команда chmod.

Чтобы изменить владельца или группу используется команда chown.

Чтобы изменить группу используется chgrp.

Источник

Команда chown в Linux

В операционной системе Линукс множество пользователей и групп. При создании файла тот администратор, от чьего имени он был образован, становится его владельцем, который находится в собственной группе, но также может объединяться с другими. Утилита сhown (ее название произошло от сочетания слов «change» и «mode») позволяет изменять владельца или группу у папок и файлов. Когда меняется владелец, он получает возможность использовать иные возможности доступа и ограничить его для остальных администраторов. Подобное разрешение можно задавать при помощи чисел и символов.

Синтаксис

  • USER (имя пользователя или идентификатор нового владельца)
  • GROUP (название новой группы или ее индекс)
  • FILE(s) (наименование одного или нескольких файлов, каталогов, ссылок).
  • -c, —changes (подробный отчет о любых произошедших изменениях).
  • -f, —silent, —quiet (сокращение данных, удаление сообщений о возможных неполадках).
  • —dereference (поменять права для файла, помеченного символической ссылкой).
  • -v, —verbose (используется для описания действий и вывода подробных данных о каждом обработанном файле).
  • -h, —no-dereference (изменить полномочия касаемо символических ссылок, но оставить неизменными файлы, на которые они указывают).
  • —from (изменить пользователя только для тех файлов, владельцем которых являются он и группа).
  • -R, —recursive (последовательная обработка всех подкаталогов).
  • -H (если передана символическая ссылка на каталог, перейти по ней).
  • -L (переходить по всем символическим ссылкам на каталоги).
  • -P (не переходить по символическим ссылкам на каталоги) (по умолчанию).

Примеры

Для первого примера изменим владельца «root» папки «katalog» на «ya». Для этого запустим команду без опций, укажем имя пользователя и путь к каталогу.

Меняем user

Меняем владельца и группу одновременно.

Чтобы изменить сразу владельца и группу необходимо применить двоеточие без промежуточных пробелов. Синтаксис данной процедуры такой: USER:GROUP KATALOG.

Для примера изменим владельца и group для каталога «katalog» на «ya» и «nogroup».

chown ya:nogroup /root/katalog

Меняем права доступа

Тоже самое сделаем для документа «dokument».

Бывают ситуации, когда нужно поменять только группу. Для этого, впереди нужно добавить «:». Поменяем группу документа «dokument» на «nogroup».

Group

Рекурсивно массово меняем права на папки и файлы

Чтобы последовательно (алгоритмически) проводить работу со всеми файлами и каталогами, используется аргумент -R (–recursive). Для удобства предварительно зайдем в целевую директорию с помощью команды cd.

Массово поменяем владельца и группу директории «primercataloga» включая вложенные папки и файлы.

ВАЖНО! Если слишком много файлов в каталоге, можно встретить ошибку «bash: /usr/bin/chown: Argument list too long». В таком случае требуется выполнить команду:

Если требуется поменять рекурсивно не только владельца и группу, а еще и права каталога, то используется другая команда chmod с таким же параметром -R (recursive).

Установим в директории /var/www 644. Что означает:

Источник

Оцените статью
Adblock
detector