Користувачі, групи і права доступу, російськомовна документація по ubuntu

Linux в цілому і Ubuntu зокрема - системи розраховані на багато користувачів, тобто на одному комп'ютері може бути кілька різних користувачів, кожен зі своїми власними настройками, даними і правами доступу до різних системних функцій.

Крім користувачів в Linux для розмежування прав існують групи. Кожна група так само як і окремий користувач має якимось набором прав доступу до різних компонентів системи і кожен користувач-член цієї групи автоматично отримує всі права групи. Тобто групи потрібні для угруповання користувачів за принципом однакових повноважень на будь-які дії, ось така тавтологія. Кожен учасник може належати до необмеженій кількості груп і в кожній групі може бути скільки завгодно користувачів 1).

Наприклад, в Ubuntu є одна дуже корисна група: admin. Будь-член цієї групи отримує необмежені адміністративні привілеї. Я вже розповідав про роль адміністратора в Ubuntu, так що якщо ви вже встигли забути хто це, можете освіжити свої знання. Створюваний при установці Ubuntu користувач автоматично стає членом групи admin 2).

Керувати користувачами і групами можна за допомогою спеціального інструменту, що знаходиться в меню Система → Адміністрування → Користувачі і групи.

Користувачі, групи і права доступу, російськомовна документація по ubuntu

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

Будь-який файл і каталог в Linux має користувача-власника і групу-власника. Тобто будь-який файл і каталог належить якомусь користувачеві системи і якоїсь групи. Крім того, у будь-якого файлу і каталогу є три групи прав доступу: одна для користувача-власника, одна для членів групи-власника і одна для всіх інших користувачів системи. Кожна група складається з прав на читання, запис і запуск файлу на виконання. Для каталогів право на виконання і право на читання завжди йдуть разом і означають одне і те ж.

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

Це звичайно дуже добре для безпеки, але що ж робити, якщо вам потрібно змінити якісь системні файли? Тут є два шляхи 4). по-перше, більшість необхідних користувачеві системних налаштувань можна змінити володіючи правами адміністратора з графічних конфігуратор, це самий кращий спосіб. Ну а по-друге можна тимчасово підвищити свої права до root і робити взагалі все, що завгодно.

Робиться це за допомогою утиліти sudo і її похідних. sudo - це консольна утиліта. Вона дозволяє «прикинутися» рутом при виконанні конкретної команди, таким чином, отримавши необмежені права. Наприклад, команда

оновить дані про доступні вам додатках (навіщо це потрібно я поясню в статті про управління програмами). Сама по собі команда

Через термінал можна зробити все, що завгодно, так що маючи можливість стати рутом ви можете виконати всі необхідні вам налаштування. Однак іноді зручно використовувати графічні додатки, при цьому маючи правами рута. Наприклад, якщо вам треба скопіювати файли в системні каталоги. Для запуску графічних додатків від імені root відкрийте діалог запуску GNOME сполучення клавіш Alt + F2 і введіть

Наприклад, для запуску файлового менеджера Nautlus треба ввести

Користувачі, групи і права доступу, російськомовна документація по ubuntu

Через запущений таким чином Nautilus ви зможете як завгодно змінювати будь-які файли на комп'ютері.

Будьте гранично уважні при використанні Nautilus з правами root. Ви зможете без жодних попереджень безповоротно видалити будь-який системний файл, що спокійно може привести до непрацездатності всієї системи.

Найважливішим прикладом застосування вищеописаної технології «прікідиванія» рутом є редагування конфігураційних файлів системи. Я вже говорив, що всі налаштування системи і всіх додатків в Linux зберігаються у вигляді текстових файлів. Так ось, редагувати ви можете тільки файли, що належать вам, тобто тільки настройки, що стосуються вашого користувача. А для редагування системних параметрів вам знадобляться права адміністратора.

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

Користувачі, групи і права доступу, російськомовна документація по ubuntu

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

Врахуйте, що sudo - це чисто консольна утиліта, тому використовувати її в діалозі запуску додатків можна, хоча з терміналу через неї можна запускати графічні додатки. А gksudo навпаки, утиліта графічна, тому її не варто використовувати в терміналі, хоча це і не заборонено.

Користувачі, групи і права доступу, російськомовна документація по ubuntu

Отже, я трохи розповів про систему управління правами доступу в Ubuntu, сподіваюся, ви зрозуміли хоча б основи. Я настійно рекомендую вам самостійно до кінця розібратися в системі прав доступу до файлів і в утиліті sudo. Трохи докладніше про sudo можна почитати, наприклад, на нашій вікі. А поки продовжимо знайомство з основами роботи в Ubuntu, залишилося розглянути ще одну тему:

1) Однак як мінімум в одній групі кожен користувач складається завжди. Це так звана основна група, за замовчуванням вона носить таке ж ім'я, як і у самого користувача.

2) І саме тому і тільки з цієї причини він власне і є адміністратором.

3) Але оскільки все, що запускаються, включаючи програми редагування налаштувань і системні сервіси, є звичайними файлами, то через розмежування доступу до файлів на вінчестері можна легко управляти доступом до різних функцій.

5) Насправді права адміністратора в основному якраз і полягають в можливості використовувати sudo.