Команда chmod предназначена для изменения прав доступа файлов и каталогов.
Синтаксис:
chmod [ОПЦИИ] РЕЖИМ[,РЕЖИМ]... <ФАЙЛ>
chmod [ОПЦИИ] --reference=ИФАЙЛ <ФАЙЛ>
Основные опции:
-R — рекурсивно изменять режим доступа к файлам, расположенным в указанных каталогах;
--reference=ИФАЙЛ — использовать режим файла ИФАЙЛ.
Команда chmod изменяет права доступа каждого указанного файла в соответствии с правами доступа, указанными в параметре РЕЖИМ. Режим может быть представлен как в символьном виде, так и в числовом (восьмеричном) виде, представляющем битовую маску новых прав доступа.
Формат символьного режима следующий:
[ugoa...][[+-=][разрешения...]...]
Здесь разрешения — это ноль или более букв из набора «rwxXst» или одна из букв из набора «ugo».
Каждый аргумент — это список символьных команд изменения прав доступа, разделеных запятыми. Каждая такая команда начинается с нуля или более букв «ugoa», которые указывают, чьи права доступа к файлу будут изменены:
u — владелец файла;
g — пользователи, входящие в группу, к которой принадлежит файл (за исключением владельца);
o — все остальные пользователи, не являющиеся ни владельцем, ни членами группы;
a — все категории пользователей (u, g и o).
Если не задана ни одна буква, то автоматически будет использована буква «a», но биты, установленные в umask, не будут затронуты.
Права доступа образуют иерархию, исключающую вышестоящие категории. Права группы не включают владельца, а права остальных пользователей не включают ни владельца, ни членов группы.
Операторы:
+ — добавляет выбранные права доступа;
- — удаляет выбранные права доступа;
= — задаёт только указанные права, заменяя существующие.
Буквы «rwxXst» задают биты доступа для пользователей:
r — чтение;
w — запись;
x — выполнение (или поиск для каталогов);
X — выполнение/поиск только если это каталог или файл с установленным битом выполнения;
s — установка битов setuid (для владельца) или setgid (для группы);
t — sticky-бит, предотвращающий удаление другими пользователями.
Числовой режим состоит из не более чем четырёх восьмеричных цифр (от нуля до семи), которые складываются из битовых масок с разрядами «4», «2» и «1». Пропущенные разряды дополняются ведущими нулями:
первый разряд — установка битов setuid (4), setgid (2) и sticky (1);
второй разряд — права доступа файла: чтение (4), запись (2) и выполнение (1);
третий разряд — права доступа для группы: чтение (4), запись (2) и выполнение (1);
четвертый разряд — права доступа для остальных пользователей (не входящих в данную группу): чтение (4), запись (2) и выполнение (1).
Примеры:
установить права, позволяющие владельцу читать и писать в файл
f1, а членам группы и прочим пользователям только читать. Команду можно записать двумя способами:
$ chmod 644 f1
$ chmod u=rw,go=r f1
позволить всем выполнять файл
f2:
$ chmod +x f2
запретить удаление файла
f3:
$ chmod +t f3
дать всем права на чтение запись и выполнение, а также на переустановку идентификатора группы при выполнении файла
f4:
$ chmod =rwx,g+s f4
$ chmod 2777 f4