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

12 set 2022 2 min di lettura
Как рекурсивно изменить права доступа к файлам в Linux
Indice dei contenuti

Введение

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

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

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

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

Рекурсивная команда Chmod

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

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

chmod -R MODE DIRECTORY

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

chmod -R 755 /var/www/html

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

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

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

Найти команду

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

Наиболее распространенным сценарием является рекурсивное изменение прав доступа к файлам веб-сайта на 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.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.