Sticky bit

Особливості прав у каталогів.

Розподіл прав доступу в Linux. Читання. Запис. Виконання.

1. Робачевскій А.М. «Операційна система Unix ®». - СПб .:

с. мул. - Парал. тит. англ.

1. Для кожного об'єкта в файлової системі Linux існує набір прав доступу, визначає взаємодію користувача з цим об'єктом. Такими об'єктами можуть бути файли, каталоги, процеси, а також спеціальні файли (наприклад, пристрої). Так у кожного об'єкта в Linux є власник, то права доступу застосовуються щодо власника файлу. Вони складаються з набору 3 груп по три атрибути:

- читання (r), запис (w), виконання (x) для власника;

- читання, запис, виконання для групи власника;

- читання, запис, виконання для всіх інших.

Такі права можна уявити коротким записом:

rwxrwxrwx - дозволено читання, запис і виконання для всіх

rwxr-xr-x - запис дозволена тільки для власника файлу, а читанні і виконан-ня для всіх.

rw-rw-r-- - запис дозволена для власника файлу і групи власника файлу, а читання - для всіх.

Такий розподіл прав дозволяє гнучко управляти ресурсами, доступними користувачам.

2. Права доступу поширюються і на каталоги. Вони означають:

r - якщо встановлено право на читання з каталогу, то можна побачити його вміст командою ls.

w - якщо встановлено право записи в каталог, то користувач може створювати і видаляти файли з поточного каталогу. Причому видалити файл з каталогу користувач може навіть якщо у нього немає прав на запис в файл. Є можливість виправити цю ситуацію. Про це я скажу пізніше.

х - якщо встановлено право виконання на каталог, то користувач має право перейти в такий каталог командами на зразок cd.

Таким чином з'являється можливість створення так званих "прихованих" каталогів, коли неможливо отримати список файлів, але користувач точно знає ім'я файлу може скопіювати його з "прихованого" каталогу.

3. Для розподілу прав доступу в Linux існує безліч команд. Основні з них - це chmod, chown і chgrp.

Команда chmod (Change MODe - змінити режим) - змінює права доступу до файлу. Для використання цієї команди також необхідно мати права власника файлу або права root. Синтаксис команди такий:

chmod mode filename, де

filename - ім'я файлу, у якого змінюються права доступу;

mode - права доступу, що встановлюються на файл. Права доступу можна записати в 2 варіантах - символьному і абсолютному.

У символьному вигляді використання команди chmod буде виглядати наступним чином:

chmod | o | | - | | X | filename,

u, g, o, a - установка прав для користувача, групи, інших користувачів, всіх груп прав доступу відповідно.

+,-,= - додати, видалити, встановити разрешеніесоответственно.

r, w, x, X, u, g, o - право читання, записи, виконання, виконання якщо є таке право ще у будь-якої з груп доступу, такі ж як у власника, такі ж як у групи, такі ж як у інших користувачів.

filename - Файл, у якого змінюються права.

[Student @ ns student] $ ls -l lesson5.txt

-rw ------- 1 student student 39 Nov 19 15:17 lesson5.txt

[Student @ ns student] $ chmod g + rw lesson5.txt

[Student @ ns student] $ ls -l lesson5.txt

-rw-rw ---- 1 student student 39 Nov 19 15:18 lesson5.txt

[Student @ ns student] $ chmod o = u lesson5.txt

[Student @ ns student] $ ls -l lesson5.txt

-rw-rw-rw- 1 student student 39 Nov 19 15:18 lesson5.txt

[Student @ ns student] $ chmod o-w lesson5.txt

[Student @ ns student] $ ls -l lesson5.txt

-rw-rw-r-- 1 student student 39 Nov 19 15:19 lesson5.txt

Для використання абсолютного режиму необхідно представити права доступу до файлу в вигляді 3-х довічних груп. Так наприклад:

rwx r-x r-- буде виглядати як:

Тепер кожну двійкову групу перевести в 8-ковий число:

111 - 7, 101 - 5, 100 - 4.

Щоб задати файлу такі права необхідно виконати команду:

[Student @ ns student] $ ls -l lesson5.txt

-rw-rw-r-- 1 student student 39 Nov 19 15:19 lesson5.txt

[Student @ ns student] $ chmod 755 lesson5.txt

[Student @ ns student] $ ls -l lesson5.txt

-rwxr-xr-- 1 student student 39 Nov 19 15:19 lesson5.txt

Завдання для учнів: спробувати змінити права файлу lesson5.txt і задати наступні: rwx r- - r - - (744), r - - - w- - - x (421), - - x - w - r - - (124 ).

Також запропонувати їм виконати те ж саме в символьному вигляді.

Команда chown (CHange OWNer - змінити власника) - дозволяє змінити власника файлу. Для використання цієї команди необхідно або мати права власника поточного файлу або права root. Синтаксис команди простий:

chown username: groupname filename, де

username - ім'я користувача - нового власника файлу;

groupname - ім'я групи - нового власника файлу;

filename - ім'я файлу, у якого змінюється власник.

Ім'я групи в синтаксисі команди можна не вказувати, тоді буде змінений тільки власник файлу.

Команда chgrp використовується для зміни власника-групи файлу. Синтаксис її такий:

chgrp groupname filename,

groupname - ім'я групи, якій буде належати файл

filename - ім'я змінюваного файлу

Майте на увазі, що використовувати команди chown та chmod може тільки користувач-власник файлу і root, а команду chgrp - користувач-власник файлу, група-власник файлу і root.

4. Існують ще кілька особливих прав, які можуть встановлюватися на файли і каталоги. Про деякі з них ми поговоримо при вивченні теми "процеси". Але один розглянемо зараз. Це ІАК званий sticky bit (біт прикріплення).

У перших версіях Юнекс цей біт використовувався для того, щоб змусити систему при роботі програми залишати образ її коду в пам'яті. Тоді при наступному зверненні до програми на її запуск витрачалося набагато менше часу так як читання коду з пристрою не більше не було потрібно. Для файлів і сьогодні в Linux залишилося колишнє значення цього біта. А ось для каталогів цей атрибут преобрел нове значення. Якщо sticky bit встановлений на каталог, то видалити файли з такого каталогу може тільки користувач-власник файлу, і то тільки якщо у нього є право на запис у файл. Група-власник і інші користувачі навіть при наявності прав на запис в файл не зможуть видалити його при встановленому на каталог sticky bit.

Біт прикріплення встановлюється командою chmod в символьному вигляді:

chmod + t filename

Схожі статті