Linux. Команда chmod
15.06.2018
Теги: Bash • chmod • CLI • Linux • SGID • StickyBit • SUID • Владелец • Директория • Команда • Пользователь • ПраваДоступа • Файл
В 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 • Владелец • Директория • Команда • Права доступа • Файл • Пользователь