Product SiteDocumentation Site

Глава 100. Средства управления дискреционными правами доступа

100.1. Команда chmod
100.2. Команда chown
100.3. Команда chgrp
100.4. Команда umask
100.5. Команда chattr
100.6. Команда lsattr
100.7. Команда getfacl
100.8. Команда setfacl

100.1. Команда chmod

Команда 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