2. Керування атрибутами файлів

Ряд показаних тут команд використовується для зміни власника або групи файла або його прав. Ми розглядали різні типи прав доступу в Розділ 1, Базові поняття системи UNIX®.

2.1. 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.

2.2. 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. через вираз. Тут права виражені послідовністю виразів, розділених комами. Отже, вираз матиме вид: [category]<+|-|=><права>.

    Категорій може бути одна чи кілька:

    • 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 -з 644 misc/file*: змінює права для всіх файлів в каталозі misc/, чиї імена починаються з file на rw-r--r-- (тобто читання для всіх, а запис тільки для власника), і повідомляє лише про ті файли, які були змінені командою.