chmod

Изменение файловых режимов (POSIX)

Синтаксис:

chmod [-H|-L|-P] [-Rv] режим файл...

Опции:

-H
Следовать за ссылкой. Означает, что утилита chmod изменит биты файла, на который указывает ссылка (не работает в рекурсивном режиме с опцией -R).
-L
Следовать за всеми ссылками. То же самое, что и -H, за исключением того, что в рекурсивном режиме с опцией -R утилита chmod изменит биты всех файлов, на которые указывают ссылки.
-P
Не следовать за ссылками. Означает, что утилита chmod не изменит биты файлов, на которые указывают ссылки.
-R
Рекурсивно изменить файловые режимы. Для каждого операнда файл, указывающего на каталог, утилита chmod изменяет биты файловых режимов этого каталога и всех файлов в нижележащей файловой иерархии.
-v
Вывести расширенную информацию; отображать выполняемые операции.
режим
Представляет изменение, выполняемое с файловым режимом каждого именованного файла файл (см. описание ниже).
файл
Путь к файлу, биты файлового режима которого должны быть изменены.

Платформы:

ЗОСРВ «Нейтрино»

Целевые архитектуры:

aarch64, arm, armv7, e2k, mips, ppc, x86

Описание:

Утилита chmod позволяет изменять любые или все биты режима полномочий доступа к файлу одного или более файлов. Для каждого указанного файла утилита chmod изменяет биты режима полномочий доступа к файлу согласно операнду режим.

Для изменения битов режима полномочий дуступа к файлу пользователь утилиты chmod должен быть владельцем файла или суперпользователем root.

Опция режим может быть выражением символьного режима симв_режим или неотрицательным восьмеричным целым числом.

Символьные режимы

Символьный режим симв_режим имеет следующую форму:

[кто]оператор[копия|полномочия][,симв_режим]

Часть кто символьного режима представляет собой комбинацию следующих опций:

a
Пользовательский, групповой и прочий доступ.
g
Групповой доступ.
o
Прочий доступ.
u
Пользовательский доступ.

Часть оператор представляет собой один из следующих вариантов:

+
Добавить определенные полномочия категориям группы, пользователя или категории другие указанных файлов.
-
Удалить определенные полномочия у категорий группы, пользователя или категории другие указанных файлов.
=
Установить определенные полномочия категориям группы, пользователя или категории другие указанных файлов.

Часть копия определяет следующие неизмененные полномочия (т.е. существовавшие до выполнения утилиты chmod):

g
Групповые.
o
Прочие.
u
Пользовательские.

Часть полномочия представляет собой любую комбинацию следующих опций:

r
Полномочие на чтение.
s
При выполнении установить идентификатор пользователя (если аргумент кто содержит или предполагает u) и/или группы (если аргумент кто содержит или предполагает g).
t
Sticky-бит.
w
Полномочие на запись.
X
Полномочие на выполнение/поиск, если файл является каталогом или перед изменением какого-либо бита режима установлен хотя бы один бит выполнения.
x
Полномочие на выполнение.

Спецификация кто является необязательной. Если она отсутствует, задействованы все полномочия (пользователя, группы и прочие), но для операторов + и = устанавливаются только те полномочия, которые не установлены маской создания файлов (см. umask).

Часть полномочия также является необязательной. При пропуске, значение по умолчанию отсутствует (т.е. комманда не добавляет полномочия, не удаляет полномочия и не устанавливает отсутствие полномочий, в зависимости от оператора).

Примеры символьных режимов

Назначение файла myfile исполняемым для всех:

chmod a+x myfile

Удаление полномочия группы и прочих полномочий на чтение:

chmod og-r myfile

Выполнение обеих вышеупомянутых операций в указанном порядке на трех файлах: myfile, file2 и zzz:

chmod a+x,og-r myfile file2 zzz

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

chmod u+r,u-w,g=o myfile

Восьмеричные режимы

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

Каждое полномочие можно указать с помощью восьмеричного числа:

Восьмеричные эквиваленты получают сложением чисел, связанных с четырьмя основными полномочиями. Их использование показано в следующей таблице.

Восьмеричное число Символьный режим Полномочие
0 Отсутствует
1 –x Выполнение
2 -w- Запись
3 -wx Запись/выполнение
4 r– Чтение
5 r-x Чтение/выполнение
6 rw- Чтение/запись
7 rwx Чтение/запись/выполнение

Например, предоставление полномочий пользователю на чтение/запись/выполнение (восьмеричное число 7 = rwx), группе на чтение /выполнение (восьмеричное число 5 = r-x) и прочим – только на чтение (восьмеричное число 4 = r–) для файла myfile выполняется следующим образом:

chmod 754 myfile

Setgid и setuid

В следующей таблице показано представление в восьмеричном формате файловых режимов setgid и setuid:

Восьмеричное число Файловый режим
1000 Sticky
2000 Setgid
4000 Setuid
6000 Setgid and setuid
Эти файловые режимы можно комбинировать с описанными выше режимами полномочий. Пример.

chmod 4666 testfile

В этом случае установлен setuid, и пользователь, группа и прочие получают доступ для чтения/записи.

Возвращаемое значение:

0
Утилита выполнена успешно, внесены все необходимые изменения.
>0
Возникла ошибка.

Предостережения:

Если операнд режим недействителен, то утилита chmod не меняет биты файлового режима.

Классификация:

Базовые подсистемы ЗОСРВ «Нейтрино», POSIX

Тематические ссылки:

chgrp, chown, find ... -chmod ..., ls, umask




Предыдущий раздел: Утилиты