Чому Ubuntu має відключений кореневий обліковий запис?


57

Ubuntu відключає кореневий вхід з "міркувань безпеки". Однак мені здається, що це зовсім не допомагає безпеці.

Якщо зловмисник вдається отримати ваш пароль для входу для Ubuntu, він також має пароль суперкористувача, оскільки він такий самий, як пароль для входу.

Однак якщо потрібний кореневий пароль, то лише наявність входу не допоможе зловмисникові сильно - це правильно, чи не так?

Отже, що я хочу знати: Чому Ubuntu вирішив вимкнути кореневий пароль? Які причини безпеки?

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


6
Подивіться, чи це допомагає.
Мітч

5
Причини використовувати судо, такі ж, як причина судо була створена в першу чергу.
Thorbjørn Ravn Andersen

2
Canonical вважає, що це найближчий баланс між зручністю та безпекою для користувачів Windows та OSX, які не мають досвіду в системному адмініструванні. Весь сенс створення дистрибутива на робочому столі - це звернення до людей, які самі не хочуть дізнаватися про Linux, але хочуть мати можливість знаходити речі, які вони хочуть запускати, клацніть по них і запускати їх. У той момент, коли "звичайному" користувачеві цікаво робити щось більше, ніж просто веб / пошту / pr0n / ігри, Ubuntu може стати шлюзом для всіх чудових матеріалів Unixy, про які вони чули (включаючи "включення" root - його завжди було) , спробуйте sudo su).
zxq9

1
Якщо хтось підписує ваш обліковий запис, він може захопити корінний пароль під час введення його, якщо ви коли-небудь suзі свого облікового запису до root. Ваша думка щодо ескалації привілеїв застосовується лише в тому випадку, якщо ви входите як корінь на окремій консолі, і ніколи не робите нічого, як корінь, який довіряє будь-яким файлам, до яких має звичайний обліковий запис. Як свідчать існуючі відповіді, одна з основних причин полягає в тому, щоб відмовити новачкам мислити корінь як обліковий запис, на який ви повинні увійти та використовувати.
Пітер Кордес

Відповіді:


81

Мітч розмістив гарне посилання в коментарі: Чому погано входити в систему як root? а веб-сайт Debian має основні переваги, перелічені у їхній вікі :

Чому sudo?

Використовувати sudoкраще (безпечніше), ніж відкривати сеанс як корінь з кількох причин, зокрема:

  • Нікому не потрібно знати кореневий пароль ( sudoзапит на пароль поточного користувача). Додаткові пільги можна надавати окремим користувачам тимчасово, а потім відбирати без необхідності зміни пароля.

  • Легко запускати лише команди, які потребують спеціальних привілеїв через sudo; решту часу ви працюєте як непривілейований користувач, що зменшує шкоду, яку можуть спричинити помилки.

  • Аудит / ведення журналу: коли sudoвиконується команда, початкове ім'я користувача та команда реєструються.

З причин, зазначених вище, перехід на root за допомогою sudo -i(або sudo su) зазвичай застарів, оскільки він скасовує наведені вище функції.

Щодо Ubuntu Переваги та недоліки перелічені на нашій вікі :

Переваги використання судо

У Ubuntu є ряд переваг, що залишають відключені кореневі логіни за замовчуванням, включаючи:

  • Інсталятор має менше запитань. Користувачі не повинні запам'ятовувати додатковий пароль для епізодичного використання (тобто кореневий пароль). Якщо вони це зробили, вони, ймовірно, забудуть це (або записати це небезпечно, дозволяючи будь-кому легко втрутитися в їхню систему).

  • Це дозволяє уникати інтерактивного входу в систему "Я можу все". Вам буде запропоновано ввести пароль до того, як можуть відбутися серйозні зміни, які повинні змусити задуматися про наслідки того, що ви робите.

  • sudo додає в журнал запис команди (s) run (in /var/log/auth.log). Якщо ви зіпсуєте, ви можете повернутися назад і подивитися, які команди виконувались.

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

  • Дозволяє просту передачу прав адміністратора, додаючи та видаляючи користувачів із груп. Коли ви використовуєте єдиний кореневий пароль, єдиний спосіб деавторизації користувачів - це зміна пароля root.
  • sudo може бути налаштований за допомогою більш чіткої політики безпеки. Паролем кореневого облікового запису не потрібно ділитися з усіма, кому потрібно виконати певні типи адміністративних завдань у системі (див. Попередню буклу).

  • Аутентифікація автоматично закінчується через короткий час (який можна встановити якнайменше бажаного або 0); тому, якщо ви підете від терміналу після запуску команд як root за допомогою sudo, ви не будете залишати кореневий термінал відкритим на невизначений термін.

Недоліки використання судо

Хоча для настільних комп’ютерів переваги використання судо великі, є можливі проблеми, які потрібно зазначити:

  • Перенаправлення виводу команд, запущених за допомогою sudo, вимагає іншого підходу. Наприклад, розглядати sudo ls > /root/somefile не вийде, оскільки саме оболонка намагається записати в цей файл. Ви можете використовувати ls | sudo tee -a /root/somefileдодавання або ls | sudo tee /root/somefileперезапис вмісту. Ви також можете передати всю команду процесу оболонки, запущеному під sudo, щоб файл був записаний з кореневими дозволами, такими як sudo sh -c "ls > /root/somefile".

  • У багатьох офісних середовищах ТОЛЬКО місцевий користувач у системі є root. Усі інші користувачі імпортуються за допомогою методів NSS, таких як nss-ldap. Щоб налаштувати робочу станцію або виправити її, у разі відмови мережі, коли nss-ldap порушено, потрібен root. Це, як правило, залишає систему непридатною, якщо не зламається. Тут потрібен додатковий локальний користувач або увімкнений корінний пароль. Локальний обліковий запис користувача повинен мати свій $ HOME на локальному диску, а нена NFS (або будь-якій іншій мережевій файловій системі) та .profile / .bashrc, який не посилається на файли на кріпленнях NFS. Зазвичай це стосується root, але якщо ви додасте некористувальний обліковий запис порятунку, вам доведеться вжити цих заходів безпеки вручну. Однак перевага використання локального користувача з sudo полягає в тому, що команди можна легко відслідковувати, як зазначено у перевагах вище.

І у нас його завжди було (з самого першого випуску).


Найдавніша згадка, яку я знайшов, говорить про 4.10, що має "судо"

SHUTTLEWORTH LAUNCHES UBUNTU LINUX на основі ДЕБЯН

... На базі Debian Ubuntu Linux входить Gnome 2.8, ядро ​​2.6.8.1, OpenOffice.org 1.1.2 і поставляється з текстовою, але простою процедурою встановлення. Ubuntu відключив користувача root, вважаючи за краще використовувати sudo так, як робить Mac OSX ...


Не вистачає декількох функцій захисту від переваг : (i.) (Для GUI) Ніхто не може отримати "підвищений привілей" без інтерактивного локального доступу (введення пароля на клавіатурі); (ii.) Наданий "підвищений привілей" призначений лише для команд (и) sudo'd, а не будь-якого завдання / потоку для користувача (або root).
david6

Це, здається, ігнорує питання, поставлені в оригінальному запитанні, і затьмарює його безліччю іншої інформації, чому це добре?
paul23

6

Я вважаю, що те, що написано на довідковій сторінці, є досить зрозумілим і достатньо об'єктивним.

Ubuntu - це "для всіх", і якщо ви досить добрі, вам не потрібен кореневий доступ, щоб пошкодити ваш комп'ютер, в той же час він вам майже не потрібен (і ви знаєте, як легко це ввімкнути).
Тож проблема не в тому, що люди "досить хороші", а в усіх інших, хто може прийти до Linux з іншого світу обчислень, і перший вплив стосується Ubuntu (а нас багато).

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.