Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

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

Пред. 

Глава 3. Введение в командную строку

 След.


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

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

chown, chgrp: Изменение владельца и группы для одного или более файлов

Синтаксис команды 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: Изменение разрешений файлов и каталогов

Команда chmod (CHange MODe - изменить режим) имеет весьма специфический синтаксис. Синтаксис в общем случае:

chmod [опции] <изменение режима> <файл|каталог> [файл|каталог...]

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

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

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

    • u (User - пользователь), разрешения для пользователя;
    • g (Group - группа), разрешения для группы владельца;
    • o (Others - остальные), разрешения для «остальных».

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

    • r (Read - чтение);
    • w (Write - запись);
    • x (eXecute - выполнение).

Главные опции полностью идентичны опциям команд chown и chgrp:

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

Пред. 

Уровень выше

 След.

Утилиты обработки Файлов 

Начало

 Шаблоны универсализации в командном процессоре