Документация по LinuxLinuxDoc.Ru 🔍

chmod - изменяет права доступа к файлу

НАЗВАНИЕ
chmod - изменяет права доступа к файлу

СИНТАКСИС
chmod [опции] режим файл...

Опции POSIX: [-R] [--]

Опции GNU (краткая форма): [-cfvR] [--help] [--version]
[--]

ОПИСАНИЕ
chmod изменяет права доступа к каждому указанному
аргументу файл в соответствии с параметром режим, который
может быть представлен как в символьном виде, так и в виде
восьмеричного числа (битовой маски новых прав доступа).

Формат символьного режима:
`[ugoa...][[+-=][rwxXstugo...]...][,...]'.

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

Оператор `+' добавляет выбранные права доступа к уже
имеющимся правам доступа файлов; `-' удаляет эти права; а
`=' присваивает только эти права каждому указанному файлу.

Символы `rwxXstugo' указывают на новые права доступа того
пользователя, который задан одним из символов `ugoa':
чтение (r); запись (w); выполнение (или доступ к каталогу)
(x); выполнение, если файл является каталогом или уже
имеет право на выполнение для какого-либо пользователя
(X); setuid- или setgid-биты (s); бит принадлежности (t);
установка для остальных пользователей таких же прав
доступа, которые имеет пользователь-владелец этого файла
(u); установка для остальных таких же прав доступа,
которые имеет группа-владелец файла (g); установка для
остальных таких же прав доступа, которые имеют остальные
пользователи (не входящие в группу файла) (o). (Так,
`chmod g-s file' снимает бит set-group-ID (sgid), `chmod
ug+s file' устанавливает биты suid и sgid, в то время как
`chmod o+s file' не выполняет никаких операций).

Бит принадлежности не описывается в POSIX. Такое
специфическое название (sticky-bit) он получил из-за
первоначальной функции, которую он выполнял: сохранял
исполняемый код программы на устройстве подкачки. В
настоящее время установка бита принадлежности для каталога
приводит к тому, что только владелец файла и владелец
этого каталога могут удалять этот файл из каталога.
(Обычно это используется в каталогах типа /tmp, в которые
любой может записывать данные).

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

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

ОПЦИИ POSIX
-R Рекурсивно измененяет права доступа к каталогам и
их содержимому.

-- Используется для обозначения конца списка опций.

ОПЦИИ GNU
-c, --changes
Подробно описывает действия над каждым параметром
файл, чьи права действительно изменяются.

-f, --silent, --quiet
Не выдает сообщения об ошибке для файлов, чьи права
не могут быть изменены.

-v, --verbose
Подробно описывает действие или отсутствие действия
для каждого параметра файл.

СТАНДАРТНЫЕ ОПЦИИ GNU
--help Выводит подсказку на стандартный вывод и завершает
свою работу.

--version
Выводит на стандартный вывод информацию о версии
программы и завершает свою работу.

-- Служит для обозначения конца списка опций.

ОПИСАНИЕ ДОПОЛНИТЕЛЬНЫХ ОПЦИЙ GNU
Расширение GNU (новое в fileutils 4.0) позволяет также
использовать --reference=rfile в качестве описания режима:
устанавливает тот же самый режим, что и у файла rfile.

ОКРУЖЕНИЕ
Переменные LANG, LC_ALL, LC_CTYPE и LC_MESSAGES
используются обычным образом. Для XSI-подобных систем
NLSPATH используется обычным образом.

СООТВЕТСТВИЕ
POSIX 1003.2 требует только опцию -R. Использование
остальных опций в некоторых случаях невозможно применить в
других системах. Стандарт POSIX не описывает бит `t'.
Этот стандарт не оговаривает, должна ли функция chmod
соблюдать корректность прав доступа к файлу, очищая или
отказываясь устанавливать биты suid и sgid, когда биты,
предоставляющие права на выполнение программы, сброшены, а
также о том, должна ли вообще chmod обращать внимание на
бит `s'.

НЕСТАНДАРТНЫЕ РЕЖИМЫ
Выше было описано применение бита `t' в работе с
каталогами. Различные системы придают специальное
значение комбинациям битов, обычно не имеющим смысла.
Linux, похожий на System V (см. System V Interface Defini-
tion (SVID) Version 3), позволяет делать блокировку
жесткой (mandatory) в отличие от обычной мягкой (advisory)
в случае, если на файле установлен бит setgid, но не
установлен бит выполнения группой. Подробности описаны в
файле /usr/src/linux/Documentation/mandatory.txt.

ЗАМЕЧАНИЯ
Данная страница описывает версию chmod из пакета fileu-
tils-4.0; другие версии могут немного отличаться от
данной. Исправления и дополнения присылайте по адресу:
aeb@cwi.nl. Отчеты об ошибках в этой программе присылайте
по адресу: fileutils-bugs@gnu.ai.mit.edu.
Читать новости Linux в Telegram
Linux - chmod - изменяет права доступа к файлу
Мы в соцсетях ✉