Ряд показанных здесь команд используется для изменения владельца или группы файла или его прав. Мы рассматривали различные типы прав доступа в Глава 1, Основные понятия системы UNIX.
Синтаксис команды chown (CHange OWNer - изменить владельца) выглядит следующим образом:
chown [опции] <пользователь[:группа]> <файл|каталог> [файл|каталог...]
-R
: рекурсивно. Для изменения владельца для всех файлов и
подкаталогов в указанном каталоге.
-v
: подробный режим. Показывает все действия, выполняемые
chown; сообщает, у каких файлов были изменены владельцы в результате
выполнения команды, а какие файлы остались без изменений.
-c
: подобна опции -v
, но сообщает
только о тех файлах, что были изменены.
chown nobody /shared/book.tex: изменяет владельца файла
/shared/book.tex
на nobody
.
chown -Rc queen:music *.mid concerts/: изменяет
владельца всех файлов в текущем каталоге, чьи имена заканчиваются на
.mid
, и всех файлов и подкаталогов в каталоге
concerts/
на пользователя
queen
и группу music
, сообщая
только о тех файлах, которые были затронуты командой.
Команда chgrp (CHange GRouP - изменить группу) позволяет вам изменять принадлежность к группе файла (или файлов); ее синтаксис очень похож на синтаксис команды chown:
chgrp [опции] <группа> <файл|каталог> [файл|каталог...]
Опции для этой команды такие же, как и у chown, и она используется очень похожим способом. Так, команда:
chgrp disk /dev/hd*
изменяет принадлежность всех файлов в каталоге
/dev/
с именами, начинающимися с
hd
, на группу disk
.
Команда chmod (CHange MODe - изменить режим) имеет весьма специфический синтаксис. В общем случае это выглядит так:
chmod [опции] <изменение режима> <файл|каталог> [файл|каталог...]
но различие состоит в формах, которыми можно изменять режим. Он может быть определен двумя способами:
через восьмеричные числа. Права владельца в этом случае соответствуют числам в форме <x>00
, где
<x>
соответствует присвоенным правам:
4 на чтение, 2 на запись и 1 на выполнение.
Так же права группы берутся по форме
<x>0
и права для
«других» в форме <x>
.
Затем, все что вам нужно сделать, это сложить вместе присвоенные права, чтобы получить правильный режим. Так, права
rwxr-xr- -
соответствуют 400+200+100
(права владельца, rwx
) +40+10 (права группы, r-x
) +4 (права для других, r- -
) = 754;
таким образом права выражены в абсолютных значениях. Это значит, что предыдущие права безоговорочно изменены;
через выражения. Здесь права выражены последовательностью
выражений, разделенных запятыми. Следовательно, выражение будет иметь вид:
[category]<+|-|=><права>
.
Категорий может быть одна или несколько:
Если категория не определена, изменения будут приняты для всех категорий. +
устанавливает права, -
забирает права и =
устанавливает права на то, что указано в командной строке. Вообщем, права бывают следующие:
Главные опции полностью идентичны опциям команд chown и chgrp:
chmod -R o-w /shared/docs: рекурсивно снимает права на запись для остальных
всем файлам и подкаталогам в каталоге /shared/docs/
.
chmod -R og-w,o-x private/: рекурсивно снимает права на запись для группы
и остальных
во всем каталоге private/
и снимает права на выполнение для остальных
.
chmod -c 644 misc/file*: изменяет права для всех файлов в каталоге misc/
, чьи имена начинаются с
file
на rw-r--r--
(то есть чтение для всех,
а запись только для владельца), и сообщает только о тех файлах, которые были подвержены действию команды.