ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)
Понедельник, 31 марта, 2025
Сегодня у нас 1 праздник:
Международный День Резервного Копирования (World Backup Day). Пользователи сайта социальных новостей reddit предложили сделать дату 31.03 Международным днём резервного копирования, аргументируя это тем, что никогда заранее нельзя узнать, какие сюрпризы преподнесёт 1.04

Как рекурсивно изменить разрешения файла в 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