Ряд показанных здесь команд используется для изменения владельца или группы файла или его прав. Мы рассматривали различные типы прав доступа в Глава 28, Основные понятия системы 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--
(то
есть чтение для всех, а запись только для
владельца), и сообщает только о тех
файлах, которые были подвержены действию
команды.