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 • Владелец • Директория • Команда • Права доступа • Файл • Пользователь