Команда chmod – зміна прав доступу

Вступ

Команда  chmod  (change mode – змінити режим) призначена для зміни прав доступу до файлів та каталогів у операційних системах подібних до Unix.

Синтаксис команди виглядає так:

chmod [ключі] встановлення_прав ім'я_файлу

Ключі необов’язкові. Встановлювати права можна двома способами: за допомогою літерного позначення прав (rwx) та за допомогою числового у вісімковій системі числення.

Зміна прав за допомогою символьної нотації

Під час встановлення прав за допомогою символів у першому аргументі (встановлення_прав) програми chmod використовуються три групи символів.

У першій групі вказується, кому буде надаватися або заборонятися доступ: власнику (u), групі (g), решті (o) або всім (a). Можна вказати як одну, так одразу кілька категорій.

Інша група означає заборону, дозвіл або призначення права і завжди складається з одного символу: -, + або =.

У третій групі перераховується права, що змінюються: читання (r), запис (w), виконання (x). Можна вказувати одразу кілька прав.

На скриншоті у першому прикладі групі додаються права на запис, що виражається як g+w. В іншому прикладі групі та іншим призначається право r–. У третьому випадку всім іншим забороняється читати файл. Зазначимо, що цей результат можна отримати у різний спосіб: як через призначення, так додаванням чи видаленням права.

Якщо потрібно призначити різним групам користувачів різні права, це можливо шляхом перерахування виразів  встановлення_прав  через когось. При цьому прогалин перед і після коми не ставляться. Також можна перерахувати кілька файлів, яким встановлюються права або встановити шаблон. Приклад:

chmod o-r,a-w month.txt text.txt

Тут іншим забороняється читати й для всіх категорій користувачів встановлюється заборона на зміну. Ці правила застосовуються до двох файлів.

Зауважимо, що зміна прав доступу до файлового об’єкта не змінює дату його модифікації. Файл змінюється лише тоді, коли змінюється його зміст. Своєю чергою, права – це одні із зовнішніх атрибутів файлу (поряд із датами), які зберігаються над самим файлом, який є індексним дескриптором.

Якщо все ж таки потрібно дізнатися, коли були змінені права на файл, використовуйте ключ  -c:

pl@pl-desk:~$ ls -lc test.html
-rw-rw-rw- 1 pl pl 1798 серп 31 07:58 test.htmlм

Встановлення прав за допомогою чисел

Спосіб використання команди chmod, коли права, що надаються, виражаються однією вісімковою цифрою для кожної категорії користувачів, дещо простіше з точки зору запису. Однак слід пам’ятати, що позначають цифри:

7 – дозволено читання, запис, виконання

6 – дозволено читання та запис

5 – дозволені читання та виконання

4 – дозволено лише читання

0 – нічого не дозволено

У першому аргументі chmod вказуються три цифри: перша означає права власника, друга – групи, третя – інших.

У першому прикладі файлу призначаються права читання та запис для власника, а групи та інших – лише читання. В іншому прикладі всім надаються права на читання та запис.

Встановлення прав для каталогів

У разі каталогів права на читання, запис та виконання мають особливе значення. Крім того, часто потрібно рекурсивно назначити права для вкладених у каталог об’єктів. Для цього використовується ключ R.

У прикладі ми встановлюємо для каталогу та вкладених у нього об’єктів права 754. Щодо каталогів це означає, що власник може робити все, група – переглядати вміст каталогу, інші – лише пізнавати список об’єктів каталогу. Зверніть увагу на використання ключа -d команди ls. Він дозволяє отримати відомості про сам каталог, а не його вміст.

Якщо для директорії встановлено право на запис, то категорія, для якої це право встановлено, може видалити з цієї директорії будь-який файл. Навіть тій, що їй не належить. Тому корисно встановлювати t-біт. За його наявності у каталогу видаляти та перейменовувати файли в ньому може лише власник цих файлів.

У прикладі команда chmod застосовується у числовій нотації. У цьому використовується додаткова цифра 1, що означає встановлення t-біту. У буквеній нотації досить просто написати +t без вказівки категорії користувачів. У видачі команди ls ми бачимо символ t замість ікса у трійці прав решти. Не означає, що біт t замінює біт x. Це особливість виведення інформації. Літера t говорити, що право на виконання є. Якби його не було, використовувалася б велика літера.

Якщо помітили помилки чи неточності, будь ласка, залишіть коментар чи напишіть листа на поштову адресу [email protected]

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *