<Попередній | зміст | Наступна>
Використання наших привілеїв
Тепер, коли ми дізналися, як працює ця річ з дозволами, настав час продемонструвати її. Ми збираємося продемонструвати рішення поширеної проблеми - створення спільного каталогу. Уявімо, що у нас є два користувача з іменами «білл» і «карен». Вони обидва мають колекцію музичних компакт-дисків і хочуть створити спільний каталог, де кожен з них зберігатиме свої музичні файли як Ogg Vorbis або MP3. Користувач законопроект має доступ до привілеїв суперкористувача через Суду.
Перше, що має відбутися, - це створити групу, в якій буде обидва законопроект та карена як члени. Використовуючи графічний інструмент керування користувачами, законопроект створює групу під назвою музика і додає користувачів законопроект та карена до нього:
Малюнок 3: Створення нової групи за допомогою GNOME
Далі, законопроект створює каталог для музичних файлів:
[bill@linuxbox ~]$ sudo mkdir /usr/local/share/Music
пароль:
[bill@linuxbox ~]$ sudo mkdir /usr/local/share/Music
пароль:
З законопроект маніпулює файлами за межами свого домашнього каталогу, потрібні привілеї суперкористувача. Після створення каталогу він має такі права власності та дозволи:
[bill@linuxbox ~]$ ls -ld /usr/local/share/Music
drwxr-xr-x 2 root root 4096 2016-03-21 18:05 /usr/local/share/Music
[bill@linuxbox ~]$ ls -ld /usr/local/share/Music
drwxr-xr-x 2 root root 4096 2016-03-21 18:05 /usr/local/share/Music
Як бачимо, каталог належить корінь і має 755 дозволів. Щоб зробити цей каталог доступним для спільного використання, законопроект потрібно змінити право власності на групу та дозволи групи, щоб дозволити запис:
[bill@linuxbox ~]$ sudo chown :music /usr/local/share/Music [bill@linuxbox ~]$ sudo chmod 775 /usr/local/share/Music [bill@linuxbox ~]$ ls -ld /usr/local/share/Music
drwxrwxr-x 2 коренева музика 4096 2016-03-21 18:05 /usr/local/share/Music
[bill@linuxbox ~]$ sudo chown :music /usr/local/share/Music [bill@linuxbox ~]$ sudo chmod 775 /usr/local/share/Music [bill@linuxbox ~]$ ls -ld /usr/local/share/Music
drwxrwxr-x 2 коренева музика 4096 2016-03-21 18:05 /usr/local/share/Music
Отже, що це все означає? Це означає, що тепер у нас є каталог,
/usr/local/share/Music, що належить користувачам root і надає доступ для читання та запису до групової музики. Групова музика має учасників, Білл і Карен, тому Білл і Карен можуть створювати файли в каталозі /usr/local/share/Music. Інші користувачі можуть перерахувати вміст каталогу, але не можуть створювати там файли.
Але у нас ще є проблема. З поточними дозволами файли та каталоги, створені в каталозі Музика, матимуть звичайні дозволи користувачів законопроект та карена:
[bill@linuxbox ~]$ > /usr/local/share/Music/test_file
[bill@linuxbox ~]$ ls -l /usr/local/share/Music
-rw-r--r-- 1 рахунок 0 2016-03-24 20:03 test_file
[bill@linuxbox ~]$ > /usr/local/share/Music/test_file
[bill@linuxbox ~]$ ls -l /usr/local/share/Music
-rw-r--r-- 1 рахунок 0 2016-03-24 20:03 test_file
Насправді є дві проблеми. По-перше, за замовчуванням умаск у цій системі є 0022, що не дозволяє членам групи записувати файли, що належать іншим членам групи. Це не було б проблемою, якби спільний каталог містив лише файли, але оскільки цей каталог зберігатиме музику, а музика зазвичай організована за ієрархією виконавців та альбомів, учасникам групи знадобиться можливість створювати файли. і каталоги всередині каталогів, створених іншими членами. Нам потрібно змінити умаск використаний законопроект та карена замість 0002.
По-друге, кожен файл і каталог, створені одним учасником, будуть встановлені на первинну групу користувача, а не на групу музика. Це можна виправити, встановивши біт setgid у каталозі:
[bill@linuxbox ~]$ sudo chmod g+s /usr/local/share/Music
[bill@linuxbox ~]$ sudo chmod g+s /usr/local/share/Music
Використання наших привілеїв
[bill@linuxbox ~]$ ls -ld /usr/local/share/Music
drwxrwsr-x 2 root music 4096 2016-03-24 20:03 /usr/local/share/Music
[bill@linuxbox ~]$ ls -ld /usr/local/share/Music
drwxrwsr-x 2 root music 4096 2016-03-24 20:03 /usr/local/share/Music
Тепер ми перевіряємо, чи нові дозволи вирішують проблему. законопроект встановлює його умаск до 0002, видаляє попередній тестовий файл і створює новий тестовий файл і каталог:
[bill@linuxbox ~]$ umask 0002
[bill@linuxbox ~]$ rm /usr/local/share/Music/test_file [bill@linuxbox ~]$ > /usr/local/share/Music/test_file [bill@linuxbox ~]$ mkdir /usr/local/share/Music/test_dir [bill@linuxbox ~]$ ls -l /usr/local/share/Music
drwxrwsr-x 2 білл музика 4096 2016-03-24 20:24 test_dir
-rw-rw-r-- 1 музичний запис 0 2016-03-24 20:22 test_file [bill@linuxbox ~]$
[bill@linuxbox ~]$ umask 0002
[bill@linuxbox ~]$ rm /usr/local/share/Music/test_file [bill@linuxbox ~]$ > /usr/local/share/Music/test_file [bill@linuxbox ~]$ mkdir /usr/local/share/Music/test_dir [bill@linuxbox ~]$ ls -l /usr/local/share/Music
drwxrwsr-x 2 білл музика 4096 2016-03-24 20:24 test_dir
-rw-rw-r-- 1 музичний запис 0 2016-03-24 20:22 test_file [bill@linuxbox ~]$
І файли, і каталоги тепер створюються з правильними дозволами, щоб дозволити всім членам групи музика для створення файлів і каталогів всередині музика каталог.
Залишилося одне питання умаск. Необхідні налаштування діють лише до кінця сеансу та повинні бути скинуті. У розділі 11 ми розглянемо внесення змін до умаск постійний.