- •Введення
- •1. Структура та обсяг дисципліни
- •2. Основи програмування на мові с
- •2.1 Найпростіші конструкції мови
- •2.2 Типи даних
- •2.4 Операції мови с
- •2.5 Структура простої с програми
- •2.6 Організація введення-виведення
- •2.7 Компіляція в системі Linux
- •2.8 Організація розгалужень в програмі
- •2.9 Організація циклів
- •2.10 Оператор break
- •2.11 Оператор continue
- •2.11 Масиви
- •2.12 Функції
- •2.13 Вызов функции с переменным числом параметров
- •2.14 Рекурсивні функції
- •2.15 Читання і запис текстових файлів
- •2.16 Структури даних
- •2.17 Перелік|перерахування| (enumeration)
- •2.18 Об'єднання (union)
- •3. Операційні системи і системне програмування
- •3.1. Поняття операційної системи
- •4. Корисні команди Linux
- •4.1. Загальні|спільні| команди
- •4.1.1. Команда arch – виведення архітектури комп'ютера
- •4.1.2. Команда clear – очищення екрану
- •4.1.3. Команда date
- •4.1.9. Команда uptime – інформація про роботу системи
- •4.1.10. Команда users – інформація про користувачів
- •4.1.11. Команди w, who і whoami інформація про користувачів
- •4.1.12. Команда xf8config – настройка графічної підсистеми
- •4.2. Команди для роботи з текстом
- •4.2.1. Команди diff і cmp
- •4.2.2. Команди grep і egrep – текстовий фільтр
- •4.2.3. Команди more и less – посторінкове виведення
- •4.2.4. Команди head і tail – виведення начала і хвоста файлу
- •4.2.5. Команда wc – підрахунок слів у файлі
- •5. Захист інформації в інформаційних системах
- •5.1 Основні завдання забезпечення безпеки
- •5.2 Базові поняття криптографії
- •5.2.1 Поняття криптографічного алгоритму і протоколу
- •5.2.2 Криптосистеми з секретним ключем
- •5.2.3 Криптосистеми із відкритим ключем
- •5.2.4. Гибридні криптосистеми
- •5.2.5. Цифрові підписи
- •5.2.6. Сертифікати
- •5.3. Принципи аутентифіекації і керування доступом
- •5.3.1. Основи аутентифікації
- •5.3.2. Основи керування доступом
- •5.4. Аутентифікація та керування доступом в unix
- •5.4.1. Облікові записи користувачів
- •5.4.2. Аутентифікація
- •5.4.3. Керування доступом
- •6. Програмний інтерфейс unix. Системні виклики і функції стандартних бібліотек
- •6.1. Підтримка програмування в oc unix. Вивчення передачі інформації
- •6.2. Змінні оточення
- •6.3. Обробка помилок
- •6.4. Правила формування і засоби розбору командних рядків
- •7. Операції над файлами
- •7.1 Файлові операції posix
- •7.2. Збирання інформації про атрибути файла
- •7.3. Операції над каталогами
- •Література
5.3.2. Основи керування доступом
Для реалізаціі керування доступом операційна система має можливість визначити, що за дії і над якими об’єктами має право виконувати той чи інший користувачи системи. Звичайний розподіл прав відображають у вигляді матриці доступу, у якій рядки відповідають суб’єктам авторизації (користувачам, групам користувачеів тощо), стовпці – ресурсам (файлам, пристроям тощо), а на перетині рядка і стовпця зазначені права цього суб’єкта на виконання операцій над даним ресурсом.
Зберігання повної матриці доступу неефективне (вона займатиме багато місця), тому звичайно використовують два базові підходи для її компактного відображення.
1. У разі реалізації списків контролю доступу (Access Control Lists, ACL) зберігаються стовпці матриці. Для кожного ресурсу задано список суб’єктів, які можуть використовувати цей ресурс.
2. у разі реалізації можливостей (capabilities) зберігаються рядки матриці. Для кожного субэкта задано список ресурсыв, якы йому дозволено використовувати.
Списки контролю доступу
Якщо реалізовано ACL, для кожного об’єкта задають список, що визначає, які користувачі можуть виконувати ті чи інші операції із цим об’єктом. Наприклад, для файлоіих систем такими об’єктами є файли або каталоги. У найзагальнішій формі елементи цього списку – це пари (користувач, набір дій), які називають елементами контролю доступу (access control elements, ACE).
Розглянемо деякі проблеми, які потрібно вирішити у разі реалізації списків контролю доступу.
Розмір списку контролю доступу має бути не надто великим, щоб система могла ним ефективно керувати.
2. Права мають бути досить гнучкими, алае при цьому не дуже складними. Надмірне ускладнення системи прав звичайно призводить до того, що користувачі починають її «обходити», задаючі спрощені права; у результаті загальна безпека не підвищеється, а ще бліьше знижується.
Вирішення цих проблем призвело до особливочтей реалізації списків контролю доступу в різних ОС. Так, загальною концепцією створення списків є задання прав не лише для окремих користувачів, але й для груп користувачів, а також можливість визначати права доступу всіх користувачів системи. У деяких ОС обмежують кількість елементів у списку (напркилад, в UNIX список обмежений трьома елементами). Аодночас у системах лінії Windows XP можна задавати списки контролю доступу, що складаються з необмеженої кількості елементів (для окремих користувачів, груп, користувачів інших комп’ютерів тощо)б і задавати різні комбінації прав – від узагальнених до детальних.
Можливості
Під час визначення модливостей для кожного користувачача задають, до яких файлів він може мати доступ і як саме. При цьому із користувачем пов’язують список можливостей (capability list), що складається із пра (об’єкт, набір дій).
Реалізація списків можливостей дає змогу забезпечити на тільки захист, але й задання імен. Можна зробити так, щоб кожний користувач бачив тільки ті файли, до яких у нього є доступ. Якщо при цьому значенням за замовчуванням є відсутність доступу, користувачі можуть починати роботу в «порожній» системі. Загалом можливості використовують у системах, де потрібно забезпечити більшу безпеку за рахунок деякого зниження зручності роботи.
Можливості можуть бути задані не тільки для користувачів, але й для окремих процесів. У результаті під час запуску кожного процесу можна визначити його права.
