ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

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

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

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

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

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

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

 

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

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

chmod -R MODE DIRECTORY

 

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

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.

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

Exit mobile version