Команда chmod

15.06.2018

Теги: BashchmodCLILinuxSGIDStickyBitSUIDВладелецДиректорияКомандаПользовательПраваДоступаФайл

В Linux существует всего три вида прав — право на чтение (read), запись (write) и выполнение (execute), а также три категории пользователей, к которым они могут применяться — владелец файла (user), группа владельца (group) и все остальные (others).

Для изменения прав доступа используется команда chmod:

chmod [опции] группадействиережим файл(ы)

Опции:

  • -R — рекурсивное изменение прав доступа для каталогов и их содержимого
  • -f — не выдавать сообщения об ошибке для файлов, чьи права не могут быть изменены
  • -v — подробно описывать действие или отсутствие действия для каждого файла

Группа указывает, для каких пользователей нужно применять права:

  • u — владелец файла
  • g — группа файла
  • o — другие пользователи
  • a — все пользователи

Действие может быть одно из трех:

  • + — добавить определенные права
  • - — удалить определенные права
  • = — установить определенные права

Режим — собственно права доступа

  • r — чтение файла или содержимого каталога
  • w — запись в файл или в каталог
  • x — выполнение файла или чтение содержимого каталога
  • s — установленные атрибуты SUID или SGID позволяют запускать файл на выполнение с правами владельца файла или группы соответственно
  • t — устанавливая sticky bit для каталога, мы защищаем файлы в нем; удалить файл в такой директории может только владелец этого файла

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

Примеры использования

$ chmod g+rx data.txt # установить для группы право на чтение и выполнение
$ chmod go-rwx data.txt # забрать все права у группы и остальных пользователей
$ chmod a+rwx data.txt # установить полный доступ всем пользователям
$ chmod u=rwx,g+w,go-x script.sh
$ chmod u+s backup.sh # установить для файла SUID
$ chmod g+s backup.sh # установить для файла SGID
$ chmod -R u-s,g-s /home/dev # рекурсивно удалить SUID и SGID
$ chmod +t /home/dev # установить sticky-бит на каталог

Использование команды в числовом виде

Но права можно записывать не только в символьном виде, но и числовом:

  • 0 — никаких прав
  • 1 — только выполнение
  • 2 — только запись
  • 3 — выполнение и запись
  • 4 — только чтение
  • 5 — чтение и выполнение
  • 6 — чтение и запись
  • 7 — чтение, запись и выполнение

Для установки прав сначала указывается цифра прав для владельца, затем для группы, а потом для остальных:

  • 744 — разрешить все для владельца, а остальным только чтение
  • 755 — все для владельца, остальным только чтение и выполнение
  • 764 — все для владельца, чтение и запись для группы, и только чтение для остальных
  • 777 — всем разрешено все
$ chmod 755 backup.sh

Поиск: Bash • CLI • Linux • SGID • SUID • StickyBit • chmod • Владелец • Директория • Команда • Права доступа • Файл • Пользователь

Каталог оборудования
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Производители
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Функциональные группы
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.