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

Если вы используете 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
привилегиями могут изменять права доступа к файлу. Будьте особенно осторожны при рекурсивном изменении прав доступа к файлам.
С использованием 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
командой.
Комментарии
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.