Как рекурсивно изменить разрешение папки в Linux

Иногда вам может понадобиться рекурсивно изменить разрешение папки в Linux. В Linux, если вы хотите прочитать, отредактировать или выполнить файл, вы должны иметь достаточные разрешения для них. В противном случае Linux выдаст сообщение 'permission denied'.

chmod - это наиболее распространенная встроенная утилита, используемая для изменения прав доступа пользователей. Она позволяет системным администраторам управлять правами доступа для нескольких пользователей, просто изменяя для них разрешения на файлы/папки. То же самое справедливо и для процессов, а не только для пользователей.

linux

По умолчанию chmod позволяет изменять разрешения одного или нескольких файлов и папок, которые вы указываете в качестве входных данных. Он изменит только разрешения перечисленных файлов и папок, не более того. Но иногда возникает необходимость рекурсивного изменения разрешений файлов и папок. В этой статье мы узнаем, как рекурсивно изменить разрешение папки в Linux.

Как рекурсивно изменить разрешение папки в Linux

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

В приведенной выше команде вам нужно перечислить один или несколько путей к файлам/папкам после команды chmod и битов разрешения. Если вы укажете относительные пути, chmod будет искать указанные файлы и папки относительно вашего текущего рабочего каталога.

Вот пример изменения разрешения файла /home/data.txt

Вот команда для изменения разрешения файлов data1.txt, data2.txt, /home/data.

Если вы хотите рекурсивно изменить разрешения файлов и папок в папке, вам нужно использовать опцию -R, как показано ниже. Вот пример рекурсивного изменения прав доступа к папке /home/user

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

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

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

Когда вы используете chmod рекурсивно, он назначит одинаковые разрешения для обоих файлов и папок. Если вы не хотите этого, то можете использовать chmod вместе с командой find. Вы можете использовать команду find, чтобы найти все нужные вам файлы/папки, а затем вызвать команду chmod для установки их разрешений, используя опцию -exec. Вот две команды для установки различных разрешений для файлов и папок в /home/user.

Первая команда назначит разрешение 755 всем каталогам в /home/user. Вторая команда find назначает разрешение 644 всем файлам.

Аналогично, вот пример установки разрешения 755 для всех .deb файлов в /home/user.

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

Вы также можете использовать символическую нотацию с командой find для изменения разрешений файлов.

Вы также можете использовать команду xargs вместе с командой find, чтобы создать отдельные операторы chmod для каждого файла и папки, присутствующих в результате команды find. Вот приведенные выше команды, использующие xargs и find.

В принципе, использование find с chmod позволяет лучше контролировать изменение разрешений нескольких файлов, в отличие от рекурсивного использования chmod.

Заключение

В этой статье мы узнали, как рекурсивно изменять разрешения файлов и папок в Linux. Мы также узнали, как использовать chmod с командой find для изменения разрешений нескольких файлов и папок без использования рекурсии. Вы можете использовать любой из этих подходов в соответствии с вашими требованиями.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий