Ви адміністратор, але ні root. rootКористувач може зробити що - небудь. Адміністратори можуть виконувати дії якroot , але зазвичай це не робиться адміністраторами root. Таким чином, ви маєте повний контроль над власною системою, але лише тоді, коли вирішите нею користуватися.
Ubuntu запитує ваш пароль, коли ви намагаєтеся робити такі речі root, щоб переконатися, що це справді ви.
Облікові записи користувачів: Людські та інше
Реальні користувачі користувачів мають облікові записи користувачів для їх представлення. Ви створили один такий обліковий запис під час встановлення Ubuntu. Але не всі облікові записи користувачів представляють реальних користувачів .
Справжнім людям користувачі надають (і відмовляють) здібності через свої облікові записи користувачів. Вони повинні використовувати свої облікові записи користувачів, щоб використовувати систему; отже, можливості та обмеження їх облікових записів користувачів застосовуються до них.
Облікові записи користувачів також використовуються для кодифікації наборів здібностей та обмежень. Деякі облікові записи користувачів - більшість, насправді, якщо у вас багато користувачів користувачів машини - існують, щоб певні програми чи команди могли працювати з їх ідентичністю, ідентичністю з правильними здібностями та обмеженнями для роботи.
Наприклад, www-dataкористувач існує так, що якщо ви запускаєте веб-сервер, він володіє даними, якими сервер робить доступними. Жоден реальний користувач не повинен мати повноваження вносити неперевірені зміни в ці дані, і веб-сервер не повинен бути уповноважений виконувати будь-які дії, непотрібні для обслуговування Інтернету. Отже, і веб-дані, і решта системи є більш захищеними від випадкового або навмисного поломки, ніж якби веб-сервером керував хтось користувач, який мав би всі повноваження веб-сервера (і чиї повноваження веб-сервер би володіти).
Найважливіший обліковий запис користувача
Суперкористувача , чиє ім'я користувача є root, це обліковий запис користувача , який не є людиною з дуже специфічною комбінацією здібностей і обмежень: всі можливості, і без будь - яких обмежень .
root«И дозволили зробити що - небудь. Але все ще rootнеможливо зробити, тому що сама система не може їх виконувати чи мати сенс. Тож rootне можна вбивати процес, який перебуває у режимі безперебійного сну , або робити скелю занадто важкою для переміщення, а потім перемістити її .
Багато важливих системних процесів, як-от init, працюють як rootі rootвикористовуються для виконання адміністративних завдань.
Чи можу я ввійти як root?
Можна налаштувати rootобліковий запис, щоб увійти за допомогою пароля, але це не включено за замовчуванням в Ubuntu. Замість цього, ви можете думати rootяк , як www-data, lp, nobodyі інші рахунки , які не є людьми. (Запустіть cat /etc/passwdабо getent passwdперегляньте їх усіх.)
Людські користувачі входять у власні облікові записи користувачів, і тоді, якщо якесь завдання потрібно виконати з іншим обліковим записом користувача, вони призводять до того, що це завдання буде виконано з цією особою , не фактично ввівшись як цей користувач.
Можна настроїти інших користувачів, які не є людьми, наприклад www-data, так що ви можете також увійти як і вони. Однак це досить рідко, тоді як в деяких інших ОС, схожих на Unix, звичайно входити як root у терміналі . Ризики запуску весь графічний інтерфейс, rootв поєднанні з тим, як багато графічних програм не призначені для роботи в якості rootі може не працювати належним чином, означає , що ви ніколи не повинні намагатися отримати root-ву сеанс робочого столу .
Будь ласка , зверніть увагу , що в той час як реєстрація в якості rootвідключена за замовчуванням в Ubuntu, є способи , щоб отримати rootоболонку без аутентифікації , як root, які виробляють такий же ефект: найбільш поширеними є sudo -sабо-i , режим відновлення і подібні методи . (Не хвилюйтесь, якщо ви не знаєте, що це за речі.) Це насправді не вхід у систему: у режимі відновлення ви стаєте rootперед тим, як відбуватиметься будь-який вхід; з sudoметодами на основі, ви просто запускаєте оболонку як корінь.
Адміністратори
В Ubuntu адміністратори - це користувачі, які можуть робити все, що завгодно root, коли вирішають це зробити .

Налаштування системи> Облікові записи користувачів. "Eliah Kagan" є адміністратором, тому він може робити речі як root, але це не такroot .
Я адміністратор своєї системи Ubuntu. Коли я запускаю програми, вони зазвичай виконуються як ek("Eliah Kagan" - це повне ім'я, яке відповідає ekімені користувача.)
Коли я запускаю AbiWord або LibreOffice, він працює як ek. Коли я запускаю Firefox, Chromium, Empathy або Pidgin, він працює як ek. Програми, які виконуються для надання інтерфейсу робочого столу, працюють як ek.
Однак я адміністратор, тому якщо мені потрібно виконати адміністративне завдання, я можу це зробити.
судо
У командному рядку я зазвичай використовую sudoдля запуску команди як root:
sudo command...
Це спонукає мене за мій пароль. (Не rootпароль; rootйого немає.)
- Оскільки я адміністратор, я можу виконувати дії як
root. У конфігурації за замовчуванням я повинен ввести свій пароль для цього.
- Користувачі, які не є адміністраторами, не можуть виконувати дії
root, навіть вводячи свій пароль. sudoкоманди не вдасться, якщо користувач, який їх виконує, не є адміністратором.
Оскільки адміністратори - це абсолютно звичайні користувачі, за винятком можливості виконувати дії як root, виконання команди, яка вимагає rootпривілеїв, все-таки не вдасться, за винятком випадків, коли команда виконується якroot .

Знімок екрана, що ілюструє необхідність використання sudoдля виконання адміністративних завдань. ( На основі «сендвіч» по Randall Мунро .)
судо, графічно
Графічні програми можуть працювати як rootчерез графічні фронтиsudo , такі як gksu/gksudo і kdesudo. Наприклад, запустити GParted так, як rootя міг запустити gksudo gparted. Тоді мені графічно запропонують пароль.

Оскільки мені запропоновано графічно, не повинно бути терміналу. Це один із способів запуску адміністративних інструментів root.
Полкіт
Polkit (колись відомий як PolicyKit) - це ще один спосіб для адміністраторів робити такі дії root. Програма отримує доступ до служби, яка виконує дію. Іноді дія виконує цілу програму; іноді дія більш обмежена.
У наші дні багато утиліти для адміністрування графічної системи створені для використання polkit за замовчуванням, а не для використання sudo.
Одним із прикладів такої утиліти є Центр програмного забезпечення. Він повністю використовує polkit, вимагаючи від користувача вводити свій пароль лише тоді, коли вони хочуть зробити щось, що вимагає rootпривілеїв. (Це можливо також за допомогою sudoаутентифікації на основі бази даних, але це важче і гірше здійснити.)
У Центрі програмного забезпечення я можу знайти та прочитати про програму; тоді мене запитують пароль, коли я хочу його встановити.

Як полкит відрізняється
Будь-яка графічна програма може працювати як rootз gksudoі іншими графічними sudoоболонками. (Програма може працювати не дуже добре, залежно від того, чи призначена вона для використання root. Але команда для запуску програми буде виконуватися як root.)
Хоча polkit зараз частіше, ніж sudoінтерфейси графічного інтерфейсу, тому що програми на Ubuntu виконують дії rootза кадром, polki запускає лише графічний додаток, як root якщо б там був файл конфігурації, який вказує, які дії можуть бути виконані .
Polkit, не графічно
pkexec це команда, яка використовується для запуску програми з polkit.
Мовляв sudo, pkexecможе запускати не графічні команди. (І для цього не потрібен файл конфігурації, що визначає можливості команди - він просто виконує команду як root.)
pkexec command...
pkexecграфічно вимагає ввести пароль, навіть якщо він запускається з терміналу (це один із способів його поведінки більш схожий, gksudoніж на прямий запуск sudo).
(Якщо немає графічного інтерфейсу, наприклад, якщо ви ввійшли через віртуальну консоль або сеанс SSH, призначений лише для тексту , або графічний інтерфейс не працює належним чином - тоді виграшно виграє і pkexecз’явиться запит на отримання пароля в командному рядку .)

Після успішної автентифікації команда виконується в терміналі.

Крім того, запускаються команди як інші користувачі root
rootє особливим, оскільки він може робити все, що можна зробити. Але це обліковий запис користувача, як і будь-який обліковий запис, і способи виконання команд, як rootз sudo(безпосередньо або з графічним фронтом) або polkit, можна трохи змінити для запуску команди, як і будь-який інший користувач:
sudo -u username command...
gksudo -u username command...
pkexec --user username command...
Що? Ви просто набираєте sudoперший? Як це безпека ?!
Запуск команд за допомогою sudoна зразок нагадує папську невірність .
Коли ви запускаєте команду ізsudo [посилатися на папську непогрішність] , Ubuntu [католицькі люди] намагається переконатися, що ви насправді ви [справді Папа].
Так, я знаю, що папська непогрішність (навіть коли нормативна) є декларативною; паралель не ідеальна.
Спроба зробити що - то , як rootз sudo(або polkit) велику справу - Ubuntu не просто збирається , щоб це слайд, як і всі інші часи ви запускаєте програму.
Вам буде запропоновано ввести пароль. (Потім, що ви зробили це, запам'ятовується на короткий час, тому вам не доведеться постійно вводити свій пароль під час адміністрування системи.)
Окрім того, що нагадує вам бути обережними , ця гарантія проти двох сценаріїв:
- Хтось використовує ваш комп’ютер (або мобільний пристрій), можливо, під прикриттям перевірки своєї електронної пошти чи якоїсь подібної нешкідливої мети. Тут вони все ще можуть заподіяти шкоду - наприклад, вони могли змінити або видалити ваші документи. Однак вони не можуть керувати системою, оскільки не можуть ввести ваш пароль.
- Програми, які не повинні адмініструвати систему, не можуть цього робити, якщо ви не введете свій пароль. Наприклад, якщо ваш веб-браузер порушений помилкою безпеки та виконує зловмисний код, він все ще не може виконувати адміністративні завдання. Він не може створювати та видаляти користувачів, змінювати встановлені програми
root(що включає все, що встановлено менеджером пакунків, наприклад LibreOffice), або змінювати систему на глибокому рівні.
Я чув про це su. Що це? Чи можу я це використати?
suавтентифікується як інший користувач і виконує команду (або запускає інтерактивну оболонку). Можна обмежити, хто дозволено використовувати su, але suавтентифікувати за допомогою пароля цільового облікового запису, а не пароля користувача, який працює.
Наприклад, працює як ім’я користувача , так само, як .su username -c 'command...'command...sudo -u username command...
Але коли ви запускаєте команду, як usernameі колись sudo, ви вводите свій пароль . Коли ви запускаєте команду, як usernameі suвведіть usernameпароль .
Оскільки suвиконується аутентифікація для цільового користувача , suви можете запускати команди лише як користувачі , акаунти яких увімкнено .
Обліковий rootзапис (як www-dataі nobody) вимкнено за замовчуванням. Немає пароля, який буде працювати для входу як root. Тому ви не можете використовувати suкоманди для запуску як root.
Ви можете використовувати suкоманди для запуску команд як іншого користувача, який може ввійти (що, як правило, включає всі облікові записи користувачів у вашій системі, що представляють людину).
Якщо ви ввійшли як гість, ви взагалі не можете користуватися su.
Поєднання suіsudo
Хтось, хто не адміністратор, може навіть використовувати його suдля запуску sudoяк адміністратор. (Хоча це нормально, оскільки їм потрібен пароль адміністратора для запуску команд як адміністратор.) Тобто обмежений користувач може використовувати suдля запуску sudoкоманду як root. Це може виглядати так:
su username -c 'sudo command...'
(Запуск графічних програм таким чином вимагає особливої обережності .)
Чи не suбуде більш безпечним способом запускати команди як root?
Напевно, ні.
Що робити, якщо користувачеві не можна дозволити діяти root?
Зробіть їх обмеженим користувачем замість адміністратора.
Що робити , якщо програма працює в якості адміністратора намагається , sudoщоб root?
Якщо ви не переконфігурували, sudoщоб дозволити йому досягти успіху без пароля, це не вдасться.
Не можна програму, яку не слід запускати як rootскарбничку в останній sudoкоманді, тому пароль не потрібен?
Це було б дуже навряд чи вдасться. У наші дні більшість операційних систем (включаючи Ubuntu) sudoналаштовані за замовчуванням, так що їх часові позначки застосовуються лише в конкретному контексті.
Наприклад, якщо я запускаюсь sudo ...на одній вкладці Terminal і успішно підтверджую автентифікацію, sudoна іншій вкладці (або запущеній незв'язаній програмі GUI або запущеній з віртуальної консолі або сеансу SSH) все одно буде запропоновано ввести пароль. Навіть якщо це буде запущено відразу після цього.
Чи програма, що працює як користувач X, не має доступу до пароля користувача X?
Немає.
Якщо зловмисна програма може працювати як адміністратор, чи не може вона "слухати" те, що вводиться, коли адміністратор перевіряє автентифікацію sudoабо polkit?
Потенційно, так. Але тоді він міг "прослухати" пароль, введений для su.
Якщо я скажу комусь свій пароль -
Не кажіть людям свій пароль.
Що робити, якщо хтось повинен знати мій пароль, щоб зробити щось від мого імені, але я не хочу дозволити їм адмініструвати систему?
В ідеалі вони повинні мати окремий обліковий запис користувача, який дозволяє їм робити те, що потрібно робити. Наприклад, можна обмінюватися файлами між обліковими записами, дозволяючи декільком користувачам писати до них, при цьому все ж забороняючи доступ іншим користувачам.
Однак, у випадку, коли особі з менш довірою може бути дозволено ділитися вашим обліковим записом, це має бути обмежений обліковий запис користувача. Ви можете створити окремий рахунок для цієї мети (що має сенс - якщо це рахунок для вас і когось іншого, хто ви хочете мати різні можливості, це повинен бути інший рахунок).
Таким чином, буде найбезпечнішим , що б заборонити як sudoі suі змусити людей увійти як rootвручну?
Ні, оскільки є серйозні недоліки, пов'язані з тим, щоб люди rootвзагалі могли входити в систему . По можливості слід вжити якомога меншу кількість дій root. Навіть більшість актів, що стосуються безпосередньо адміністрування системи (наприклад, перегляд налаштувань користувачів та читання журналів), зазвичай не потребують rootпривілеїв.
Крім того, як потенційно шкідлива програма може спостерігати, що хтось набирає під час запуску sudoабо su, або створює підроблений запит sudo/ suпароль, потенційно шкідлива програма також може створити підроблений екран входу.
Що робить користувача адміністратором?
Членство в групі.
В Ubuntu 12.04 і пізніших версіях адміністратори є членами групи, яку називають sudo.
В Ubuntu 11.10 і новіших версіях адміністратори є членами групи, яку називають admin.
Коли система Ubuntu до 12.04 оновлена до 12.04 або пізнішої, adminгрупа зберігається для зворотної сумісності (і продовжує надавати адміністративні повноваження користувачам у ній), але sudoгрупа також використовується.
Обмежені облікові записи користувачів
Чи можна використовувати обмежений обліковий запис користувача замість облікового запису адміністратора?
Якщо вам подобається, обов'язково. Створіть обмежений обліковий запис користувача в Налаштуваннях системи > Облікові записи користувачів та ввійдіть як цей користувач.
Чи можу я зробити свій обліковий запис адміністратора обмеженим обліковим записом користувача?
Так, просто видаліть його з груп sudoі admin(див. Вище).
Але ви повинні переконатися, що є хоча б ще один обліковий запис адміністратора, щоб ви могли адмініструвати свою систему. Якщо цього немає, то вам доведеться завантажитися в режим відновлення або живий компакт-диск і знову зробити користувача адміністратором . (Це схоже на скидання втраченого пароля адміністратора .)
Графічні інструменти для адміністрування користувачів та груп зазвичай не дають вам створити систему без адміністраторів або принаймні попередить вас. Інструменти командного рядка зазвичай не будуть (довіряючи, що ви знаєте, що робите).