Команда chmod (сокр. от "change mode" – смена режима) предоставляет возможность изменять привилегии доступа к файлам и директориям в операционных системах, ориентированных на Unix.

Синтаксис команды представлен следующим образом: chmod [ключи] установка_прав имя_файла

Ключи являются опциональными. Права могут быть установлены двумя методами: воспользовавшись символическим обозначением прав (rwx) или применив числовой формат в восьмеричной системе.

Как устанавливать права на файлы и каталоги командой chmod, используя буквы и числа

Изменение прав с помощью символьной нотации

При использовании символов для задания прав в первом аргументе (установка_прав) команды chmod применяются три группы символов.

Первая группа указывает, для кого применяется или исключается доступ: владельца (u), группы (g), других (o) или всех категорий (a). Можно выбирать как одну, так и несколько категорий одновременно.

Вторая группа обозначает действие над правами и включает в себя один символ: -, + или =, соответствующие запрету, разрешению или назначению прав.

Третья группа перечисляет права, которые изменяются: чтение (r), запись (w), выполнение (x). Допустимо задавать сразу несколько прав.

Примеры изменения прав с помощью букв

На изображении первым примером является добавление для группы права на запись, что выглядит как g+w. Во втором примере группе и прочим пользователям назначаются права r--. В последнем случае прочим запрещается чтение файла. Следует отметить, что можно достичь одного и того же результата различными способами: через назначение, добавление или удаление прав.

Когда необходимо назначить различные права для разных групп пользователей, это достигается перечислением выражений установка_прав через запятую без пробелов. Также можно указать несколько файлов или использовать шаблон. Пример:

chmod o-r,a-w month.txt text.txt

В этом случае прочим запрещается читать, и для всех пользователей устанавливается запрет на изменение. Данные правила применяются к двум файлам.

Установка прав с помощью чисел

Метод использования команды chmod с числовым выражением прав, записываемых одной восьмеричной цифрой для каждой категории пользователя, более прост в записи. Важно помнить значения цифр:

  • 7 – разрешены чтение, запись и выполнение
  • 6 – разрешены чтение и запись
  • 5 – разрешены чтение и выполнение
  • 4 – разрешено только чтение
  • 0 – запрет на все действия

В первом аргументе chmod указываются три цифры: первая обозначает права владельца, вторая – группы, третья – других пользователей.

Примеры изменения прав с помощью цифр

В первом примере файлу назначаются права владельца на чтение и запись, а для группы и других – только на чтение. Во втором примере все пользователи получают права на чтение и запись.

Установка прав для каталогов

В каталогах права на чтение, запись и выполнение приобретают особый характер, как упоминалось в предыдущем уроке. Также нередко возникает задача рекурсивного назначения прав для вложенных объектов в каталоге, что реализуется с использованием ключа -R.

Рекурсивное изменение прав для каталога

В примере мы применяем для каталога и всех содержащихся в нем объектов права 754. Для каталогов это означает, что владелец имеет полные права, группа может только просматривать содержимое каталога, а другие пользователи могут лишь узнать список объектов. Обратите внимание на использование ключа -d команды ls. Он предназначен для получения информации о самом каталоге, а не его содержимом.

Если директория имеет право на запись, то категория пользователей с этим правом может удалить из нее любой файл, даже если он ей не принадлежит. Поэтому полезным оказывается установка t-бита. Этот бит разрешает удалять и переименовывать файлы в каталоге только владельцу этих файлов.

Установка t-бита

В данном примере используется числовой формат для команды chmod, где добавляется цифра 1, обозначающая установку t-бита. В символьной нотации достаточно додать +t без указания пользователей. При выводе команды ls символ t появляется вместо x в правах остальных. Это не означает замену, а особенности вывода. Символ t указывает наличие права на выполнение. Без него вместо t изображалась бы заглавная буква.

Установленный t-бит без права на выполнение

Вопросы для самопроверки:

  1. Какие ключевые элементы можно использовать вместе с командой chmod?
  2. Что означает рекурсивное назначение прав в каталоге при помощи команды chmod?
  3. Каким образом можно изменить права для владельца, группы и других пользователей одним числом?
  4. Как отличается применение команды chmod при назначении прав для файлов и каталогов?
  5. Для чего используется t-бит при установке прав доступа к директории?

Программа курса:

  1. Описание курса
  2. История операционной системы Linux
  3. Основы лицензии GNU GPL и её преимущества
  4. Функции и структура ядра Linux-систем
  5. Структура и каталоги файловой системы Linux
  6. Основные типы файлов в системе Linux
  7. Интерфейс командной строки в Linux
  8. Командная оболочка Bash в Linux
  9. Использование параметров команд в Bash
  10. Использование Ctrl+C, Ctrl+D и Ctrl+Z
  11. Автодополнение и история команд в Bash
  12. Перенаправление ввода и вывода в Bash
  13. Документация Linux и Man-страницы
  14. Абсолютная и относительная адресация в Linux
  15. Команда ls - как просматривать каталоги в Linux
  16. Копирование, перемещение и удаление в Linux
  17. Жесткие и символьные ссылки в Linux
  18. Создание жестких и символических ссылок в Linux
  19. Права доступа к файлам и каталогам в Linux
  20. Изменение прав доступа к файлам с помощью chmod
  21. Использование шаблонов имен файлов в Linux
  22. Поиск файлов в Linux с помощью команды find
  23. Использование команды sudo в Linux
  24. Управление пакетами с помощью APT в Linux