chmod

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

Синтаксис:

chmod [-Rv] режим файл...

Поддерживаемые платформы:

QNX Neutrino, Linux, Microsoft Windows

Опции:

-R

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

-v

Вывести расширенную информацию; отображать выполняемые операции.

режим

Представляет изменение, выполняемое с файловым режимом каждого именованного файла файл (см. описание ниже).

файл

Путь к файлу, биты файлового режима которого должны быть изменены.

Описание:

Утилита 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


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

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

Каждое полномочие можно указать с помощью восьмеричного числа: чтение = 4; запись = 2; выполнение = 1; отсутствие полномочия = 0. Восьмеричные эквиваленты получают сложением чисел, связанных с четырьмя основными полномочиями. Их использование показано в следующей таблице.

Восьмеричное число

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

Полномочие

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 и setuid


Эти файловые режимы можно комбинировать с описанными выше режимами полномочий. Пример.

chmod 4666 testfile


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

Статус завершения:

0

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

>0


Возникла ошибка.

Предупреждения:

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