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

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

Обычно пользователь, создавший файл, имеет права на доступ и изменение прав доступа к файлу. Кроме того, пользователь root по умолчанию имеет все права доступа ко всем файлам в системе.

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

Просмотр текущих разрешений файла

Чтобы посмотреть текущие права доступа к файлу или каталогу, выполните в Терминале следующую команду:

$ ls –l

Например, если мы запустим ls-l , мы получим аналогичный результат:

В приведенном выше списке, если первый символ строки начинается с «d», это означает, что это каталог, а если он начинается с «- ”Означает, что это файл. После этого следующие девять символов показывают права доступа к файлу или каталогу. Эти девять символов фактически сгруппированы в три набора для пользователя, группы и владельца соответственно. Кроме того, каждый набор включает три вида разрешений: r, w и x для разрешений «чтение», «запись» и «выполнение» соответственно.

Изменение разрешений

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

Синтаксис:

$ chmod [ссылка] [оператор] [режим] файл1 файл2 …

Где

  • ссылка: кому назначать разрешения, например, u (для пользователя ), g (для группы), o (для владельца).
  • оператор: + (добавить разрешение), — (удалить разрешение), = (установить только это разрешение)
  • режим: какое разрешение назначить r (для чтения), w (для записи), x (для выполнения)

Изменение разрешений рекурсивно с помощью -R

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

Chmod позволяет вам изменять права доступа для нескольких файлов и подкаталогов в каталоге с помощью параметра –R следующим образом:

$ chmod –R [ссылка] [оператор] [режим] файл …

Допустим, подкаталоги в каталоге загрузок имеют следующие разрешения, как показано на следующем снимке экрана.

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

Теперь давайте изменим разрешение нашего родительского каталога «files», назначив ему разрешение на запись следующим образом.

$ chmod u + w files

Где U означает «пользователь», + означает «добавить», а w для «записи».

После назначения разрешения на запись запустите команду « ls –l », вы увидите, что новое разрешение назначено для « files ».

Однако эта команда применяет только права доступа к каталогу, а не к файлам в нем. Чтобы убедиться в этом, перейдите в каталог файлов с помощью команды « cd ». Затем запустите команду « ls –l ». На следующем снимке экрана видно, что разрешения не изменились.

Давайте применим разрешение рекурсивно, используя следующую команду:

$ chmod –R u + w files

Это не только применить разрешение к родительскому каталогу «files», но также и к файлам в нем.

Теперь, чтобы проверить, успешно ли применено разрешение, перейдите в каталог «files» с помощью команды « cd », а затем запустите « ls –l ”. Из следующих входных данных вы можете видеть, что разрешения успешно применены ко всем файлам в родительском каталоге.

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

$ chmod –R 700

Рекурсивное изменение разрешения с помощью команды Find

Когда chmod с –R используется для применения разрешения в каталоге, он назначает такое же разрешение всем файлам и подкаталогам в нем . Однако иногда вам может потребоваться предоставить отдельные разрешения для файлов и каталогов. Примером этого может быть применение разрешения на выполнение к каталогу, но не к файлам, поскольку файлы не нуждаются в разрешении на выполнение. Как правило, для файлов и каталогов назначаются следующие разрешения.

Для каталогов: 755 или drwxr-xr-xx
Для файлов: 644 или -rw-r — r—

В этом случае для рекурсивного назначения разрешений каталогам используйте одну из абсолютных или символических форм:

$ find/path/to/ каталог -type d -exec chmod 755 {} +
$ find/path/to/directory -type d -exec chmod u = rwx, go = rx {} ;

Для рекурсивного назначения разрешений файлам используйте одну из абсолютных или символических форм:

$ find/path/to/directory -type f -exec chmod 644 {} +
$ find/path/to/directory -type f -exec chmod u = rw, go = r {} ;

Обязательно замените разрешения необходимыми наборами разрешений.

Вот как вы можете рекурсивно изменять разрешения для каталога в Linux. Чтобы применить одни и те же рекурсивные разрешения ко всему файлу и подкаталогу, используйте параметр –R, а для применения рекурсивных разрешений к файлу и подкаталогам отдельно используйте команду «Найти».

Оцените статью
nanomode.ru
Добавить комментарий