Ряд команд, показанных здесь используется для изменения владельца или группы файла или его прав. Мы рассматривали различные права в главе Базовые концепции системы UNIX.
Синтаксис команды chown (CHange OWNer (изменить владельца)) следующий:
chown [options] <user[.group]> <file|directory> [file|directory...] |
chown nobody /shared/book.tex: изменяет владельца файла /shared/book.tex на nobody.
chown -Rc queen.music *.mid concerts/: изменяет принадлежность всех файлов в текущем каталоге, чьи имена заканчиваются на .mid и всех файлов и подкаталогов в каталоге concerts/ на пользователя queen и группу music, сообщая только о файлах, которые изменены командой.
Команда chgrp (CHange GRouP (изменить группу)) позволяет вам изменять принадлежность к группе файла (или файлов); ее синтаксис очень похож на chown:
chgrp [options] <group> <file|directory> [file|directory...] |
Параметры этой команды такие-же как и для chown и она используется очень похоже. Так, команда:
chgrp disk /dev/hd* |
изменяет принадлежность всех файлов в каталоге /dev/ с именами, начинающимися на hd на группу disk.
Команда chmod (CHange MODe (изменить режим)) имеет весьма отличный синтаксис. В общем случае это выглядит так:
chmod [options] <change mode> <file|directory> [file|directory...] |
но различие состоит в формах, которыми можно изменять режим. Он может быть определен двумя путями:
через восьмеричные числа. Права владельца в этом случае соответствуют числам в форме <x>00, где <x> соответствует присвоенным правам: 4 на чтение, 2 на запись и 1 на выполнение. Так же права группы берутся по форме <x>0 и права для “других” в форме <x>. Затем, все что вам нужно сделать, это сложить вместе присвоенные права, чтобы получить правильный режим. Так, права rwxr-xr-- соответствуют 400+200+100 (права владельца, rwx) +40+10 (права группы , r-x) +4 (права для других, r--) = 754; таким образом права выражены в абсолютных значениях. Это значит, что предыдущие права безоговорочно изменены;
через выражения. Здесь права выражены последовательностью выражений, разделенных запятыми. Следовательно, выражение будет иметь вид: [category]<+|-|=><permissions>.
Категорий может быть одна или несколько:
Если категория не определена, изменения будут приняты для всех категорий. + устанавливает права, - убирает права и = устанавливает права. Вообщем, права бывают следующие:
Главные параметры полностью похожи на параметры команд 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-- (то есть чтение для всех, а запись только для владельца) и сообщает только о файлах которые были изменены.