CHMOD(1)
НАЗВАНИЕ
chmod - изменение режима доступа к файлам
СИНТАКСИС
chmod режим файл ...
ОПИСАНИЕ
Права доступа к указанным файлам (среди которых могут быть каталоги)
изменяются в соответствии с указанным режимом. Режим может быть задан в
абсолютном или символьном виде.
Абсолютный вид - восьмеричное число, являющееся поразрядным ИЛИ следующих
режимов:
- 04000
- При выполнении переустановить действующий идентификатор пользователя.
- 020#0
- При выполнении переустановить действующий идентификатор группы, если
# есть 7, 5, 3 или 1; учитывать блокировку доступа, если # есть 6, 4, 2
или 0.
- 01000
- Бит навязчивости [см. man chmod(2)].
- 00400
- Доступен для чтения владельцем.
- 00200
- Доступен для записи владельцем.
- 00100
- Доступен для выполнения (в случае каталога - для просмотра)
владельцем.
- 00040
- Доступен для чтения членами группы.
- 00020
- Доступен для записи членами группы.
- 00010
- Доступен для выполнения (просмотра) членами группы.
- 00004
- Доступен для чтения прочими пользователями.
- 00002
- Доступен для записи прочими пользователями.
- 00001
- Доступен для выполнения (просмотра) прочими пользователями.
Использование символьного вида основано на однобуквенных обозначениях,
которые определяют класс доступа и права доступа для членов данного класса.
Права доступа к файлу зависят от идентификатора пользователя и идентификатора
группы, в которую он входит. Режим в целом описывается в терминах трех
последовательностей, по три буквы в каждой:
Владелец Группа Прочие (u) (g) (o) rwx rwx rwx
Здесь владелец, члены группы и все прочие пользователи обладают правами
чтения файла, записи в него и его выполнения. В примере показаны обозначения
как для класса доступа, так и для прав доступа внутри класса.
Для задания режима доступа в символьном виде используется следующий
синтаксис:
[кому] операция права
Часть [кому] есть комбинация букв u, g и o (владелец, члены группы и прочие
пользователи соответственно). Если часть кому опущена или указано a, то это
эквивалентно ugo.
Операция может быть: + (добавить право), - (лишить права), = (в пределах
данного класса присвоить права абсолютно, то есть добавить указанные права
и отнять неуказанные).
Права - любая осмысленная комбинация следующих букв:
r | Право на чтение. |
w | Право на запись. |
x | Право на выполнение (поиск в каталоге). |
s | При выполнении переустанавливать действующий
идентификатор пользователя или группы. |
t | После выполнения программы сохранять сегмент
команд (бит навязчивости). |
l | Учет блокировки доступа. |
Опустить часть права можно только если операция есть = (для лишения всех
прав).
Если надо сделать более одного указания об изменении прав, то при
использовании символьного вида в правах не должно быть пробелов, а указания
должны разделяться запятыми. Например, команда
chmod u+w,go+x f1
добавит для владельца право писать в файл f1, а для членов группы и прочих
пользователей - право выполнять файл. Права устанавливаются в указанном
порядке. Право s можно добавлять только для пользователя и группы, право
t - только для пользователя.
Учет блокировки доступа (l) к файлу и его частям означает возможность
монопольного захвата сегментов файла на время их обработки. Нельзя, однако,
разрешить выполнение файла для членов группы и одновременно учитывать
блокировку файла. Нельзя также разрешить переустановить при выполнении
действующий идентификатор группы и учитывать блокировку файла. Таким
образом, следующие команды являются некорректными:
chmod g+x,+l f2 chmod g+s,+l f3
Попытка их выполнения вызовет соответствующую диагностику.
Изменить режим доступа к файлу может только его владелец или
суперпользователь. Бит навязчивости может установить только
суперпользователь. Чтобы добавить право переустановки идентификатора
группы, надо быть членом этой группы; кроме того, для членов группы должно
быть установлено право выполнения.
Для просмотра прав доступа и контроля при их изменении используется команда
ls с флагом -l. Права переустановки идентификаторов
пользователя и группы отмечаются буквой s на месте соответствующей буквы x:
малой s, если соответствующая категория пользователей имеет право x, и
большой S - если не имеет; право t отмечается на месте последней буквы x:
малой t, если прочие пользователи имеют право выполнять файл, и большой
T - если не имеют. Право l отмечается на месте права x для членов группы.
ПРИМЕРЫ - Чтобы установить права, позволяющие владельцу читать и писать в файл, а
членам группы и прочим пользователям только читать, надо сложить 0400, 0200,
0040 и 0004. Таким образом, команду можно записать двумя способами:
chmod 644 f1 chmod u=rw,go=r f1
- Позволить всем выполнять файл f2:
chmod +x f2
- Учитывать блокировку доступа к файлу f3:
chmod +l f3
- Дать всем права на чтение запись и выполнение, а также на переустановку
идентификатора группы при выполнении файла f4:
chmod =rwx,g+s f4 chmod 2777 f4
|