Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСКМ лекції.docx
Скачиваний:
0
Добавлен:
13.08.2024
Размер:
7.28 Mб
Скачать
      • Визначення прав доступу до файлів

В ОС Linux кожним файлом володіє певний користувач та група. Права доступу визначають окремо для трьох категорій користувачів: власника, групи та інших користувачів. Подивитися на права доступу до файлів у біжучому каталозі можна, наприклад командою

ls –l

Приклад виводу цієї команди:

-rw-rw-r-- 1 user user 245 Жов 12 21:07 0471710458.rar

drwxr-xr-x 5 user user 1024 Лис 8 15:15 bin/

drwx------ 2 user user 1024 Лис 2 10:03 Desktop/

-rw-rw-r-- 1 user user 669 Жов 8 23:24 Diagram1.dia

drwxrwxr-x 3 user user 1024 Тра 29 17:07 Diss/

drwxrwxr-x 2 user user 1024 Жов 5 20:13 Documents/

drwxrwxr-x 2 user user 1024 Жов 12 19:35 Download/

Тип файла та права доступу до нього відображені у першій колонці виводу

Для зручності роботи з командами правила доступу мають числові та буквенні коди

Код

Значення

0 або -

Відповідного права доступу немає

4 або r

Право на читання

2 або w

Право на запис

1 або x

Право на виконання

Код

Значення

u

Права користувача

g

Права групи

o

Права інших користувачів

Кожен користувач повинен знати своє login- ім’я та до яких груп він належить. Цю інформацію можна отримати командою:

Id

Login-ім’я також зберігається у змінній USER:

Echo $USER

Команда chmod

Команда chmod дозволяє змінити права доступу до файла. Вона сприймає як числові, так і буквенні параметри. Наприклад, щоб додати для власнику файла hello право на виконання, можна використати команду:

chmod u+x hello

Аналогічно, щоб забрати у інших користувачів права на запис та виконання для цього файлу, можна виконати команду:

chmod o-wx hello

Приклади застосування команди chmod з числовими параметрами і водночас найбільш вживані конфігурації прав доступу наведені у таблиці

Команда

Значення

Chmod 400 файл

Захист файлу від випадкового перезаписування

Chmod 500 каталог

Захист файлів каталогу від випадкової зміни

Chmod 600 файл

Приватний файл, який може бути змінений тільки користувачем, що ввів цю команду

Chmod 644 файл

Загальнодоступний для читання файл, який може бути змінено тільки користувачем що ввів цю команду

Chmod 660 файл

Користувачі, що належать групі, можуть змінювати файл. Інші взагалі не мають до нього доступу

Chmod 700 файл

Захист файлу від інших користувачів

Chmod 755 каталог

Файли в каталозі можна читати та виконувати усім, а змінювати -0 тільки власником

Chmod 755 файл

Звичайно використовується для сумісного використання файлів у межах групи

Chmod 777 файл

Всі мають повні права доступу до файлу

Для отримання більш детальної інформації по параметрах команди chmod можна подивитися у системній довідці.

Робота з групами

Кожен користувач по замовченню належить до однієї (головної) групи. Власне ця група вказана в файлі /etc/group для користувача. У більшості сучасних версій Linux прийнято, що користувач по замовченню належить до своєї приватної групи. (Ця група має ту ж назву, що й ім’я користувача та містить тільки цього користувача).

Водночас, користувач може перейти і до інших груп. Список груп, до яких він моде перейти можна отримати з виводу команди id. Для переходу в іншу групу (наприклад, групу web) користувачу треба ввести команду:

newgrp web

Якщо групу змінено, і наприклад, користувач створює новий файл, то цим файлом буде володіти вже змінена група.

Маска файлів

Коли створено новий файл, то система присвоює йому певні стандартні права доступу. Файли без прав доступу не існують у Linux. Різні користувачі мають різні значення цих стандартних прав доступу. Наприклад, root має більші обмеження щодо стандартних прав доступу.

Значення зміщення стандартних прав доступу для нового файлу можна отримати командою

umask

Нехай вивід команди umask був 002. Розглянемо, як визначають права доступу до новоствореного каталогу або файлу. Спочатку каталогу присвоюють повні права доступу (777). А файлу присвоюють права доступу 666 (читання та запис для усіх, виконання – нікому). А потім числове значення визначене командою umask віднімається від заданих прав доступу. Для наведеного прикладу каталог отримає права доступу 775, а файл - 664

Значення зміщення umask задається в файлах /etc/bashrc або /etc/profile

Зміна власника файлу або каталогу

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

Chown newuser file

Аналогічно, групу можна змінити командою chgrp

Команди chown та chgrp мають багато інших можливостей, у тому числі – рекурсивну зміну власника для файлу чи каталогу.

Як правило, ці команди дозволено виконувати тільки адміністратору системи

Спеціальні коди доступу

Визначено три спеціальні біти у коді доступу каталогу або файлу

Sticky біт (1000). Якщо цей біт встановити для певного каталогу, то користувач зможе змінювати тільки такі файли у цьому каталозі, власником яких він є (при наявності відповідних прав доступу до файлів). Така схема доступу використиовується, наприклад, у каталозі /var/tmp де записані багато файлів різних користувачів. Встановлений sticky біт позначається буквою t у списку прав доступу до файла.

SUID (set user ID, 4000) та SGID (set group ID, 2000). Коли ці біти встановлено для виконувального файла, він буде виконуватися від імені власника файла, а не користувача, що запустив його на виконання. Це дозволяє забезпечити доступ до ресурсів системи. Зміщення позначаються буквою s у списку прав доступу до файла

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