CHMOD(1)

НАИМЕНОВАНИЕ
chmod — изменить биты режима доступа к файлу

ОБЗОР
chmod [ПАРАМЕТР]... РЕЖИМ[,РЕЖИМ]... ФАЙЛ...
chmod [ПАРАМЕТР]... ВОСЬМЕРИЧНЫЙ-РЕЖИМ ФАЙЛ...
chmod [ПАРАМЕТР]... --reference=ОФАЙЛ ФАЙЛ...

ОПИСАНИЕ
Данная страница руководства описывает версию chmod от GNU. chmod изменяет биты режима доступа для каждого указанного файла в соответствии с РЕЖИМом, который может носить символьное представление вносимых изменений или являться восьмеричным числом, определяющим битовую комбинацию нового режима доступа.

Символьное представление имеет формат [ugoa...][[-+=][права...]...], где права содержат ноль или более букв из набора rwxXst или одну букву из набора ugo. Несколько символьных режимов доступа могут быть перечислены через запятую.

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

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

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

Числовое представление режима доступа содержит от одной до четырёх восьмеричных цифр (0-7), получаемых сложением битов с весами 4, 2 и 1. Отсутствующие цифры считаются ведущими нулями. Первая цифра задаёт атрибуты установки идентификатора пользователя set user ID (4), группы set group ID (2) и ограниченного удаления или sticky (1). Вторая цифра задаёт права пользователя, владеющего файлом: чтение (4), запись (2) и исполнение (1); третья задаёт права других пользователей из группы файла с такими же значениями; четвёртая цифра — права пользователей, не входящих в группу файла, с такими же значениями.

chmod не изменяет права на символьные ссылки; системный вызов chmod не может изменить эти права на большинстве систем, и большинство систем игнорирует их. Однако, для каждой символьной ссылки, перечисленной в командной строке, chmod изменяет права на файл, на который она ссылается. При рекурсивном прохождении по каталогам, chmod, напротив, игнорирует встречающиеся символьные ссылки. Параметры, которые изменяют это поведение, описаны в разделе ПАРАМЕТРЫ.

БИТЫ SETUID и SETGID
chmod удаляет бит установки идентификатора группы (set-group-ID) у обычного файла, если идентификатор группы этого файла не совпадает с эффективным идентификатором группы пользователя или идентификатором одной из его дополнительных групп, если только у пользователя нет соответствующих привилегий. Дополнительные ограничения могут привести к тому, что биты установки идентификатора пользователя (set-user-ID) и группы (set-group-ID) РЕЖИМа или ОФАЙЛа будут проигнорированы. Такое поведение зависит от политик и функциональности лежащего в основе системного вызова chmod. В случае сомнений, ознакомьтесь с низкоуровневым поведением системы.

При обработке каталогов, chmod сохраняет биты установки идентификатора пользователя (set-user-ID) и группы (set-group-ID), если вы явно не указали иначе. Вы можете установить или снять эти биты с помощью символьного представления режима доступа, например u+s или g-s. Для снятия этих битов у каталогов с использованием числового представления режима потребуется дополнительный ведущий ноль (00755), ведущий минус (-6000) или ведущий символ равенства (=755).

ФЛАГ ОГРАНИЧЕННОГО УДАЛЕНИЯ ИЛИ STICKY BIT
Флаг ограниченного удаления или sticky bit — это одиночный бит, назначение которого зависит от типа файла. Для каталогов, он предотвращает удаление или переименование файлов в каталоге непривилегированным пользователем, не являющимся владельцем этого файла или каталога; в этом случае бит носит название флага ограниченного удаления для каталога и широко применяется среди общедоступных для записи каталогов, например /tmp. Для обычных файлов на некоторых старых системах, данный бит позволяет сохранять образ текста программы на устройстве подкачки, чтобы она загружалась быстрее при запуске; в этом случае бит носит название sticky bit.

ПАРАМЕТРЫ

Изменить режим доступа для каждого ФАЙЛа на РЕЖИМ. При использовании --reference изменить режим доступа для каждого ФАЙЛа на соответствующие значения у файла ОФАЙЛ.

-c, --changes
    аналогично параметру verbose, но информировать только при внесении изменений

-f, --silent, --quiet
    подавлять большинство сообщений об ошибках

-v, --verbose
    выводить диагностическую информацию для каждого обработанного файла

--dereference
    для каждой символьной ссылки изменять не саму ссылку, а её целевой объект

-h, --no-dereference
    для каждой символьной ссылки изменять саму ссылку, а не её целевой объект

--no-preserve-root
    не воспринимать «/» особым образом (по умолчанию)

--preserve-root
    отказываться от рекурсивного выполнения над «/»

--reference=ОФАЙЛ
    вместо указания значения РЕЖИМ использовать режим доступа к ОФАЙЛу в качестве образца. Если ОФАЙЛ является символьной ссылкой, она будет предварительно разыменована.

-R, --recursive
    изменять файлы и каталоги рекурсивно

The following options modify how a hierarchy is traversed when the -R option is also specified. If more than one is specified, only the final one takes effect. -H is the default.

-H  если аргумент командной строки является символьной ссылкой на каталог, перейти по ней

-L  переходить по всем символьным ссылкам на каталоги

-P  не переходить по символьным ссылкам

--help
    отобразить эту справочную информацию и завершить работу

--version
    вывести информацию о версии и завершить работу

РЕЖИМ указывается в формате «[ugoa]*([-+=]([rwxXst]*|[ugo]))+|[-+=][0-7]+».

АВТОРЫ
Программа написана Дэвидом Маккензи (David MacKenzie) и Джимом Мейерингом (Jim Meyering).

ИНФОРМАЦИЯ ОБ ОШИБКАХ
Онлайн-справка GNU coreutils: <https://www.gnu.org/software/coreutils/>
Сообщайте обо всех ошибках перевода по адресу <https://translationproject.org/team/ru.html>

АВТОРСКИЕ ПРАВА
Copyright © 2025 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>.
Это свободное программное обеспечение: вы можете изменять и распространять его. Не предоставляется НИКАКИХ ГАРАНТИЙ в той мере, в которой это разрешено законом.

СМОТРИТЕ ТАКЖЕ
chmod(2)

Полная документация на <https://www.gnu.org/software/coreutils/chmod>,
также доступна локально посредством info '(coreutils) chmod invocation'

ПЕРЕВОД
Русский перевод этой страницы руководства разработал(и) Андрей Догадкин <adogadkin@outlook.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков (<debian-l10n-russian@lists.debian.org>).