Рекурсивное изменение разрешений файлов с помощью chmod в Linux

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

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

linux

Проверка разрешения файлов

Если вам нужно проверить разрешения файлов в рабочем каталоге, используйте команду:

В результате вы получите список разрешений всех файлов в каталоге.

ls -l

Например, каталог Example содержит три файла (test1.txt, test2.txt и test3.txt) с одинаковыми разрешениями (-rw-rw-r-).
Перечисленные выше разрешения файлов говорят нам следующее:

  • Владелец имеет права на чтение и запись
  • Группа владельца имеет права на чтение и запись
  • Другие пользователи имеют права на чтение

Изменение разрешения рекурсивно

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

В таких случаях опция chmod recursive (-R или --recursive) устанавливает разрешение для каталога (и содержащихся в нем файлов).

Синтаксис для изменения разрешения файла рекурсивно следующий:

Таким образом, чтобы установить разрешение 755 для всех файлов в каталоге Example, вы должны ввести:

Эта команда дает права на чтение, запись и выполнение владельцу (7) и доступ на чтение и выполнение всем остальным (55).

В приведенном примере разрешение определено с использованием восьмеричного/числового режима (755). В качестве альтернативы можно использовать символьный режим (с использованием буквенно-цифровых символов) и использовать команду: chmod -R u=rwx,go=rx

Изменение разрешений с помощью команды find

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

Основной синтаксис включает использование команды find для поиска файлов/каталогов и последующую передачу команды chmod для установки разрешения:

Замените [директория] на путь к каталогу, содержащему файлы и подкаталоги, которые вы хотите настроить.
Укажите, что искать: каталог - тип d или файл - тип f.
Задайте файлу [привелегия] с помощью команды chmod, используя числовой или символьный режим.

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

В этом примере каталоги имеют права 755 (u=rwx,go=rx), а файлы - 644 (u=rw,go=r).

Вы можете проверить, что каталоги и файлы имеют разные настройки разрешений, перейдя в каталог Example (cd Example) и перечислив его содержимое (ls -l).

Изменение разрешения определенных файлов рекурсивно

Комбинация команды find и chmod также может быть использована для изменения разрешения файлов определенного типа.

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

Например, чтобы сделать все файлы .sh в текущем каталоге исполняемыми, вы должны использовать:

Понравилась статья? Поделиться с друзьями:
Добавить комментарий