Product SiteDocumentation Site

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

53.1. Команда chmod
53.2. Команда chown
53.3. Команда chgrp
53.4. Команда umask
53.5. Команда chattr
53.6. Команда lsattr
53.7. Команда getfacl
53.8. Команда setfacl

53.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
  • дать всем права на чтение, запись и выполнение, а также установить бит setgid для файла f4:
    $ chmod =rwx,g+s f4
    $ chmod 2777 f4