Обработка Атрибутов Файлов

Ряд команд, показанных здесь используется для изменения владельца или группы файла или его прав. Мы рассматривали различные права в главе Базовые концепции системы UNIX.

chown, chgrp: Изменение Владельца или Группы Одного или Нескольких Файлов.

Синтаксис команды chown (CHange OWNer (изменить владельца)) следующий:

chown [options] <user[.group]> <file|directory> [file|directory...]

Параметры включают:

  • -R: рекурсивно. Для изменения владельца всех файлов и каталогов в данном каталоге.

  • -v: подробный(verbose) режим. Отображает все действия, производимые 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 [options] <group> <file|directory> [file|directory...]

Параметры этой команды такие-же как и для chown и она используется очень похоже. Так, команда:

chgrp disk /dev/hd*

изменяет принадлежность всех файлов в каталоге /dev/ с именами, начинающимися на hd на группу disk.

chmod: Изменение Прав Файлов и Каталогов

Команда chmod (CHange MODe (изменить режим)) имеет весьма отличный синтаксис. В общем случае это выглядит так:

chmod [options] <change mode> <file|directory> [file|directory...]

но различие состоит в формах, которыми можно изменять режим. Он может быть определен двумя путями:

  1. через восьмеричные числа. Права владельца в этом случае соответствуют числам в форме <x>00, где <x> соответствует присвоенным правам: 4 на чтение, 2 на запись и 1 на выполнение. Так же права группы берутся по форме <x>0 и права для “других” в форме <x>. Затем, все что вам нужно сделать, это сложить вместе присвоенные права, чтобы получить правильный режим. Так, права rwxr-xr-- соответствуют 400+200+100 (права владельца, rwx) +40+10 (права группы , r-x) +4 (права для других, r--) = 754; таким образом права выражены в абсолютных значениях. Это значит, что предыдущие права безоговорочно изменены;

  2. через выражения. Здесь права выражены последовательностью выражений, разделенных запятыми. Следовательно, выражение будет иметь вид: [category]<+|-|=><permissions>.

    Категорий может быть одна или несколько:

    • u (User, (Пользователь) права владельца);

    • g (Group, (Группа) права владельца группы);

    • o (Others, (Другие) права для “остальных”).

    Если категория не определена, изменения будут приняты для всех категорий. + устанавливает права, - убирает права и = устанавливает права. Вообщем, права бывают следующие:

    • r (Read (Чтение) );

    • w (Write (Запись) ) или;

    • x (eXecute (Выполнение) ).

Главные параметры полностью похожи на параметры команд chown или chgrp:

  • -R: изменяет права рекурсивно.

  • -v: подробный (verbose) режим. Отображает действия, производимые с каждым файлом.

  • -c: также как -v, но показывает только файлы, на которые подействовала команда.

Примеры:

  • 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-- (то есть чтение для всех, а запись только для владельца) и сообщает только о файлах которые были изменены.