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

How to Recursively Change the File's Permissions in Linux

21 Января 2020 | Терминал

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

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


Комментарии
Если у вас есть вопросы, не стесняйтесь оставлять комментарии ниже.
Загрузка комментариев...