Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Cp oldfile newfile; rm oldfile

Поиск

Тепер уявимо, що маємо файл targetfile і посилання на нього oldfile. Команда

Mv oldfile newfile

перейменує посилання, тобто тепер newfileбуде посилатись на targetfile. Команда

Cp oldfile newfile

скопіює не посилання, а сам файл targetfile, тобто під іменем newfileбуде створено новий файл – копію targetfile. Наступна команда

Rm oldfile

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

Завдання до виконання

1. Завантажтеся в систему під вашим користувацьким ім'ям.

2. Поміняйте ваш пароль. Ваш новий пароль повинен включати в себе як частину номер Вашої залікової книжки.

3. Виведіть системну дату.

4. Підрахуйте кількість рядків у файлі:

Варіант Файл
1, 2, 4 /etc/passwd
3, 10 /etc/group
6, 9 /etc/profile
5, 7, 8 /etc/vfstab

5. Виведіть на екран вміст відповідного файлу.

6. Виведіть календар на <1995+№варіанту> рік.

7. Виведіть календар на 1752 рік. Чи не помічаєте що-небудь цікаве у вересні? Поясніть.

8. Визначте, хто ще завантажений у систему.

9. Наберіть команду ping. Поясніть результат.

10. Скопіюйте (скопіюйте, а не перемістіть, бо система перестане працювати коректно!) файли

варіант файл 1[1] файл 2
  /bin/cat /bin/at
  /bin/cal /bin/chmod
  /bin/ls /bin/chown
  /bin/tee /bin/file
  /bin/more /bin/gzip
  /bin/date /bin/gunzip
  /bin/cp /bin/ps
  /bin/mv /bin/csh
  /bin/lpr /bin/sh
  /bin/find /bin/ksh

у ваш домашній каталог різними способами.

11. Створіть каталог lab_1.

12. Скопіюйте в нього з вашого домашнього каталогу копію файлу 1, яку ви отримали в п.10, під ім'ям my_<ім’я файлу 1>. Перемістіть в цей каталог з вашого домашнього каталогу копію файлу 2, яку ви отримали в п.10, перейменувавши його при цьому в my_<ім’я вихідного файлу 2>. За ім’я вихідного файлу слід брати саме ім’я файлу, без імен каталогів і шляху до файлу (інакше символ "/" буде проінтерпретований операційною системою зовсім не так, як Ви очікуєте).

13. Перейдіть у свій домашній каталог і переконайтеся в тому, що все зроблено правильно.

14. Створіть каталог lab_1_<№варіанту> і перейдіть в нього.

15. Скопіюйте в каталог lab_1_<№варіанту> файл з п.4 під ім'ям n<ім’я вихідного файлу>.

16. За допомогою команд cat і more перегляньте його вміст.

17. Перейдіть у свій домашній каталог.

18. Видаліть каталог lab_1_<№варіанту>.

Комп’ютерний практикум №2. Система розмежування доступу в UNIX та Solaris, права доступу до файлів і керування ними

Мета

Оволодіння практичними навичками керування правами доступу до файлів і їхній аналіз в ОС UNIX та Solaris

Завдання для самостійної підготовки

1. Вивчити:

¨ поняття “право доступу” і “метод доступу”;

¨ атрибути доступу до файлів в UNIX;

¨ перегляд інформації про права доступу;

¨ зміна прав доступу.

2. Детально ознайомитись з довідкової системи man з такими командами UNIX:

ls –l, chmod, chown, umask [2], setfacl, getfacl.

Відповідно до завдання підготувати послідовність команд для його виконання.

Довідковий матеріал

Складовою кожної захищеної системи є система розмежування доступу. В системі UNIX контролюється доступ до файлів. Кожний файл має свого власника, а також відноситься до визначеної групи. Вся детальна інформація про файл, що включає тип файлу, ідентифікатори власника файлу та його групи, розмір файлу, час останньої модифікації файлу, інформацію щодо прав доступу до файлу, а також про його розміщення (номери блоків), міститься не в каталогах, як це зроблено в багатьох інших файлових системах, в тому числі FAT (MS-DOS, Windows), а в системній таблиці так званих індексних дескрипторів (i-node). Безпосереднє звернення до цієї таблиці заборонене. Каталоги містять лише ім’я файлу та індекс – посилання на відповідний запис в таблиці індексних дескрипторів. Саме завдяки такій організації, кожний файл в файловій системі UNIX може мати кілька абсолютно рівноправних імен (жорстких посилань), що в загальному випадку містяться в різних каталогах (це було розглянуто в Лабораторній роботі №1). Інформацію з таблиці індексних дескрипторів можна переглянути командою ls –l. При цьому для кожного файлу інформація видається у вигляді одного рядка. Перший символ – тип файлу: ‘–’ – звичайний файл (текстовий або бінарний), d –каталог (directory), l – символічне посилання (link), c – символьний пристрій (character device), b – блочний пристрій (block device). Наступні дев’ять символів описують права доступу до файлу (див. далі). Далі надається інформація про кількість жорстких посилань на файл, власника файлу, групу, розмір файлу, дату останньої модифікації і останнє поле – ім’я файлу.

UNIX реалізує дискреційну[3] модель розмежування доступу, в якій для кожного файлу визначається, які права мають всі користувачі на доступ до файлу. Для цього з кожним файлом асоціюється спеціальна інформація, що містить ідентифікатор власника файлу, ідентифікатор групи файлу і права доступу до файлу. Права доступу поділяються на 3 частині: права власника, права групи і права всіх інших. У кожному класі користувачів виділено по 4 біти. Перші (молодші) три біти відповідають правам читання, запису й виконання, відповідно. Для каталогів право виконання трактується як право доступу до таблиці індексних дескрипторів на читання і запис, не маючи цього права неможливо зробити поточним цей каталог чи будь-який з його підкаталогів, неможливо ознайомитись і змінити права доступу до об’єктів цього каталогу, можна тільки переглядати його вміст, якщо є право читання. Навіть маючи право запису, без права виконання не можна змінити вміст каталогу. Навпаки, якщо є право на виконання, але не встановлено право на читання для каталогу, то неможливо переглянути вміст каталогу, але можна заходити в його підкаталоги чи звертатись до файлів, що містяться в ньому, якщо знати їхні імена.

Четвертий біт має різне значення в залежності від того, в якій групі прав доступу він установлений. Для групи прав власника цей біт називається SUID (Set-User-ID-on-execution bit), і якщо він установлений для файлу, що виконується, то цей файл виконується для будь-якого користувача із правами власника цього файлу. Якщо четвертий біт встановлений у групі прав доступу членів групи (SGID – Set-Group-ID-on-execution bit), то ця програма виконується для будь-якого користувача із правами членів групи цього файлу. Для каталогів SGID визначає, що для усіх файлів, створюваних у цьому каталозі, ідентифікатор групи буде встановлений такий же, як у каталогу (ці правила залежать від версії UNIX).

Четвертий біт у групі прав доступу всіх інших користувачів називається Sticky, на сьогоднішній день він використовується тільки для каталогів і визначає, що користувачі, які мають право на запис в каталог, не мають права видаляти чи перейменовувати файли інших користувачів у цьому каталозі. Це необхідно для каталогів загального використання, наприклад /tmp.

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

chmod < нові права > < файл(и) >

< нові права > задаються двома способами. Перший – символьний. Використовуються такі позначення: u – власник файлу (user), g – група (group), o – всі інші (others), a – всі категорії користувачів одночасно (all). Після категорії користувачів задається дія: ‘ + ’ – додати права до існуючих, ‘ ’ – відібрати права (якщо існують), ‘ = ’ – встановити права замість існуючих. Далі позначаються права: r – зчитувати (Read), w – записувати (Write), x – виконувати (eXecute). Можна формувати список зміни прав, розділяючи окремі категорії користувачів комами (без пробілів). Наприклад, команда

chmod u+rw,g=rx,o-w my_file

встановить для користувача права на зчитування і записування (право на виконання для користувача буде залежати від того, чи було воно встановлено раніше), для групи встановить права на зчитування і виконання (незалежно від того, які права були раніше), а для всіх інших гарантовано заборонить записування (права на зчитування і виконання будуть встановлені в залежності від того, чи були вони встановлені раніше).

Другий – числовий спосіб задавання прав доступу – зручніше використовувати, коли треба встановлювати нові права незалежно від попередньо встановлених. При цьому використовується представлення у восьмеричній системі числення, яке легко зрозуміти з наведеної таблиці:

Восьмеричне представлення Двійкове представлення Права доступу
    ---
    --x
    -w-
    -wx
    r--
    r-x
    rw-
    rwx

 

Наприклад, команда

chmod 751 my_file

встановлює такі права доступу до файлу my_file: власнику – зчитування, записування, виконання, групі – зчитування і виконання, а всім іншим – лише виконання. Команда ls -l покаже для цього файлу таку інформацію про права доступу: ‑rwxr‑x‑‑x (перший “мінус” означає, що це звичайний файл).

За замовчуванням для всіх нових файлів, що створюються, встановлюються такі права: для файлів 666, тобто rw-rw-rw-, для каталогів – 777, тобто rwxrwxrwx (ми вже бачили вище, що наявність права на виконання дуже важлива для каталогів). Є особлива команда – umask, яка дозволяє зменшити права доступу, що встановлюються для нових файлів. Параметром цієї команди є восьмерична маска, аналогічна тій, що використовується при числовому способі задавання параметрів команди chmod, але у випадку команди umask права доступу, що задані нею, будуть відніматись від прав доступу, що були задані по замовчуванню для вже утвореного файлу. Команда umask не може додавати прав, тому нові файли ніколи автоматично не отримають право на виконання, в разі необхідності його треба буде додати вручну. Дія команди umask розповсюджується на всі файли всіх типів, що утворюються протягом поточної сесії користувача після цієї команди. Наприклад, після команди umask123 всі файли будуть утворюватись з параметрами доступу rw‑r‑‑r‑‑ (644), а всі каталоги – rw‑r‑xr‑‑ (654). За замовчуванням рекомендується використовувати команду umask 22 (інтерпретується як umask 022).

Для зміни власника файлу існує команда chown. З міркувань безпеки, ця команда дозволяє встановлювати власником файла будь-кого лише системному адміністратору (root ’у). Інші користувачі можуть лише привласнити файл собі, якщо вони мають на це права, встановлені правами доступу до файлу і каталогу.

Списки ACL

В современных системах UNIX для большей гибкости прав доступа введены дополнительные свойства объектов, такие как флаги для файлов и каталогов, списки управления доступом (ACL) для файлов и каталогов, аутентификация и авторизация с использованием различных служб аутентификации подобных TACACS и RADIUS, а также модули аутентификации и авторизации (pluggable authentication modules - PAM).

Стандартные права доступа в UNIX не всегда идеальным образом подходят для решения задач администрирования системы. Например, что сделает администратор, если доступ к файлу на чтение и запись надо дать одной группе пользователей? Конечно, сделает эту группу владелицей файла, а затем делегирует право чтения и записи файла этой группе, вот так:

chgrp нужная_группа файл

chmod g=rw файл

А если надо дать право доступа только одному из членов этой группы? Тогда можно создать новую группу специально для этой цели, сделать ее членом только одного пользователя, и затем указать, что эта новая группа будет владеть файлом:

addgroup новая_группа

chgrp новая_группа файл

chmod g=rw файл

#редактируем /etc/group и добавляем в новую группу существующего пользователя

vi /etc/group

Такое ухищрение нам помогло, но что делать, если надо дать право чтения, записи и запуска двум разным пользователям, а еще двум – право чтения и записи, а еще одному – только чтения. а всем остальным – вообще не дать доступ к этому файлу? На такой вопрос нет ответа, если вы работаете в «классической» версии UNIX. Однако, некоторые современные системы UNIX (например, Solaris и FreeBSD) обладают требуемым механизмом. Это – списки управления доступом к файловой системе, access control lists (ACLs).

Списки управления доступом дают более гибкие возможности назначения прав доступа, чем традиционные права доступа UNIX. С помощью ACL можно назначить как права доступа хозяина файла, группы файла и всех остальных, так и отдельные права для указанных пользователей и групп, а также максимальные права доступа по умолчанию, которые разрешено иметь любому пользователю.

Здесь и далее мы будем называть ACL для файлов и каталогов «расширенными правами доступа». Расширенные права доступа к файлам и каталогам устанавливаются командой setfacl.

Они представляют собой ряд полей, разделенных двоеточиями:

entry_type:[uid|gid]:perms

Здесь entry_type – тип расширенного права доступа, uid и gid – идентификаторы пользователи и группы, соответственно, а perms – собственно назначаемые права доступа.

 

Расширенные права доступа к файлу могут быть такими, как показано в Таблице:

u[ser]::perms права доступа хозяина файла.
g[roup]::perms права доступа группы файла
o[ther]:perms права всех остальных
m[ask]:perms маска ACL
u[ser]:uid:perms права доступа указанного пользователя; в качестве uid можно указать и UID, и имя пользователя
g[roup]:gid:perms права доступа указанной группы; в качестве gid можно указать и GID, и имя группы

 

Маска задает максимальные права доступа для всех пользователей, за исключением хозяина и групп. Установка маски представляет собой самый быстрый путь изменить фактические (эффективные) права доступа всех пользователей и групп. Например, маска r — — показывает, что пользователи и группы не могут иметь больших прав, чем просто чтение, даже если им назначены права доступа на чтение и запись.

 

Кроме расширенных прав доступа к файлу, которые могут быть применены и к каталогу, существуют специфические права доступа к каталогу, а именно права доступа по умолчанию. Файлы и подкаталоги, которые будут создаваться в этом каталоге, будут получать такие же расширенные права доступа по умолчанию, которые заданы в расширенных правах доступа к этому каталогу.

Устанавливая права доступа по умолчанию для конкретных пользователей и групп, необходимо также установить права доступа по умолчанию для хозяина и группы файла, а также всех остальных, а также маску ACL (эти четыре обязательных записи указаны выше по тексту – первыми в таблице расширенных прав доступа к файлу).



Поделиться:


Последнее изменение этой страницы: 2016-08-16; просмотров: 351; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.117.91.170 (0.008 с.)