Утилита chmod#

Описание#

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

Синтаксис утилиты:

chmod <option> <mode> <file/dir>

Где:

  • <option> - опция;

  • <mode> - режим доступа;

  • <file/dir> - файл/каталог.

Опции#

Часто используемые опции утилиты представлены в таблице ниже.

Опции chmod#

Опция

Описание

-f, --silent, --quiet

Подавить большинство сообщений об ошибках

-R, --recursive

Изменить права на каталоги и файлы рекурсивно

Режим доступа#

Режим доступа mode задается в формате [ugoa...][[-+=][perms...]...], где perms - это либо ноль или более букв из набора rwxXst, либо одна буква из набора ugo. Можно задать несколько режимов, разделенных запятыми.

Комбинация букв ugoa контролирует, какой доступ к файлу будет изменен для различных пользователей: пользователь, который владеет файлом (u), другие пользователи в группе владельца файла (g), другие пользователи, не входящие в группу владельца файла (o), или все пользователи (a). Если ни одна из этих букв не указана, эффект будет таким же, как при указании (a), но биты, установленные в umask (подробнее см. в Утилита umask), не затрагиваются.

Оператор + добавляет выбранные биты режима файла к существующим; - удаляет; = добавляет выбранные биты с удалением всех остальных, за исключением того, что биты ID пользователя и группы каталога, не упомянутые в каталоге, не затрагиваются.

Буквы rwxXst выбирают биты режима файла для затронутых пользователей: чтение (r), запись (w), выполнение (или поиск для каталогов) (x), выполнение/поиск только в том случае, если файл является каталогом или уже имеет разрешение на выполнение для некоторых пользователей (X), установление идентификатора пользователя или группы при выполнении (s), ограниченный флаг удаления/«sticky» бит (t). Вместо одной или нескольких из данных букв можно указать одну из букв набора ugo: разрешения, предоставленные владельцу файла (u), разрешения, предоставленные другим пользователям, которые являются членами группы владельца файла (g), разрешения, предоставленные пользователям, не входящим ни в одну из двух предыдущих категорий (o).

Чтобы задать режим числом, можно использовать от одной до четырех восьмеричных цифр (0-7), полученных путем сложения битов со значениями 4, 2 и 1. Пропущенные цифры предполагаются как ведущие нули. Первая цифра выбирает атрибуты установленного идентификатора пользователя (4), идентификатора группы (2) и ограниченного флага удаления/«stiky» бита (1). Вторая цифра выбирает разрешения для пользователя, владеющего файлом: чтение (4), запись (2), выполнение (1). Третья выбирает разрешения для других пользователей в группе владельца файла с теми же значениями. Четвертая - аналогично для других пользователей, не входящих в группу владельца файла.

Примеры использования#

  • Для выдачи права на выполнение файла path/to/file его владельцу введите команду:

    chmod u+x path/to/file
    
  • Для отзыва права на выполнение файла path/to/file у группы введите команду:

    chmod g-x path/to/file
    
  • Для отзыва прав на доступ к файлу path/to/file у пользователей, не входящих в группу владельца, введите команду:

    chmod o= path/to/file
    
  • Для выдачи права на запись каталога path/to/directory и всех входящих в него объектов рекурсивно группе и пользователям, не входящим в группу владельца, введите команду:

    chmod -R g+w,o+w path/to/directory
    

Дополнительная информация#

Дополнительную информацию можно получить, выполнив команду:

man chmod

Или:

chmod --help