Чому Ubuntu не дозволяє користувачам GUI входити як root під час запуску системи, як адміністратор у Windows?
Чому вони обмежують нас увійти лише через термінал?
Чому Ubuntu не дозволяє користувачам GUI входити як root під час запуску системи, як адміністратор у Windows?
Чому вони обмежують нас увійти лише через термінал?
Відповіді:
Тому що це не рекомендується робити, якщо ви точно не знаєте , що ви робите. Корінь - це суперпользователь, тобто він може робити все і все - він призначений лише для адміністративних завдань. Щоденні завдання можуть нести загрозу безпеці, яку БУДЕ експлуатуватися, якщо КОЖЕН (або велика частина користувачів) використовує root. Подумайте, що Windows - 99% проблем із шкідливим програмним забезпеченням та вірусами - це люди, які використовують облікові записи адміністратора для щоденних завдань.
Давайте розглянемо приклад.
Що робити, якщо хтось увірветься у вашу систему і скаже їй стерти ваші диски? Якщо ви працюєте як звичайний користувач, єдині файли, які ви (повинні) зможете видалити, - це ті, що належать вам, а не комусь іншому. Якщо, скажімо, у вас були інші люди, які користуються комп’ютером, їх файли взагалі не будуть торкатися, як би ви не старалися. Це означає, що ви не зможете змінити жодних системних файлів, а отже, ваша система залишатиметься непомітною та незадіяною / незараженою.
Якщо ви працюєте як root, однак, ви можете повністю витерти жорсткий диск, ймовірно, завдасте деякого шкоди самому апаратному забезпеченню та взагалі зробить систему непридатною. Виправлення: кожен, хто може запустити одну команду як root на вашому комп’ютері (якийсь шкідливий веб-сайт або вкладення електронної пошти), може це зробити.
Погляньте на http://everyjoe.com/technology/explain-why-not-log-on-as-root/ , це приємна стаття, яка може пояснити це краще, ніж я.
EDIT: ось ще одна http://ihazomgsecurityskillz.blogspot.nl/2010/09/running-as-root.html
EDIT2: ви завжди можете використовувати sudo command
або gksu command
запускати command
як суперпользователь, обидва працюють з графічними утилітами та утилітами командного рядка. sudo
Однак, як правило, використовується для CLI, і gksu
це графічний пароль, який робить те саме.
До певної міри вони дозволяють вам стати root
тимчасово - набагато, набагато краще, ніж постійно працювати як root і ризикувати нестабільністю.
У стандартному Ubuntu root
вхід не дозволений ні з диспетчера входу в GDM (графічний), ні з текстової консолі (тобто тієї, яку ви отримаєте, якщо натиснути Ctrl+ Alt+ F1).
Для того , щоб виконати root
(тобто адміністратор) операції ви повинні використовувати sudo
команду в терміналі або будь-GUI еквіваленті цього: вони будуть питати ваш пароль , а потім виконати запитану операцію привілейованої (і тільки те , що один).
Причина такої поведінки, як зазначають інші, полягає в тому, що виконання root
операцій за своєю суттю є ризиковим, а кількість операцій, які дійсно потребують root
привілеїв, порівняно невелика: використовуючи такий sudo
підхід, ви працюєте більшу частину часу з непривілейованим рахунком (тобто нешкідливим. до системи та інших користувачів) і просто отримуйте root
повноваження, коли це дійсно потрібно.
Приклад може допомогти уточнити. Припустимо, що ви хочете встановити нову послугу (демон) на свій апарат; це порівняно нове, і вам потрібно прочитати про нього та як налаштувати його під свої потреби. Ви в кінцевому підсумку переглянете Інтернет, щоб знайти інформацію, приклади конфігурацій тощо. Можливо, будете мати чат IRC, щоб запитати більше інформації - ніщо з цього не вимагає root
повноважень! Зрештою, вам потрібен лише привілейований доступ для двох операцій:
sudo apt-get install ...
) таЗагальноприйнятим принципом у комп'ютерній безпеці є завжди використання найменш можливого рівня привілеїв для виконання операції. - це знижує ризик того, що трапиться щось погане через помилки в програмному забезпеченні або помилки оператора.
Установка за замовчуванням Ubuntu йде в цьому напрямку; якби ви використовували root
логін, замість цього ви б закінчились серфінгом в Інтернеті, роблячи IRC (і, можливо, всі інші речі, які кожен робить одночасно) з root
облікового запису, тим самим непотрібно піддаючи систему загрозі.
Оновлення: Для вашого прикладу компілятора я б поступив так:
Увійдіть до вузла через SSH як ваш звичайний користувач та з іншого вузла Ubuntu або GNU / Linux, де працює графічний дисплей X11. Обов’язково ввімкнено переадресацію X11 через SSH:
ssh -X myuser@remotemachine.example.org
У запиті shell / SSH видайте команду:
sudo /path/to/the/compiler/install/program
Це запустить інсталятор компілятора з root
привілеями та отримати доступ (за допомогою SSH-переадресації) графічний дисплей перед вами.
Міркування щодо використання судо в Ubuntu можна знайти тут . Якщо вам коли-небудь потрібен швидкий спосіб "вкоренитися", я використовую sudo -s
або sudo -i
.
Окрім гірських попереджень, використовуючи root, ви можете увімкнути кореневий вхід, увійшовши та виконуючи наступні дії з терміналу:
sudo passwd
Це спочатку запропонує вам ввести пароль, а потім попросить змінити пароль UNIX. Введений пароль буде для root
облікового запису.
У Ubuntu Wiki є чудова стаття про глибину кореня та судо в межах Ubuntu - застереження та підводні камені.
Тут є два питання. По-перше, чому в Ubuntu за замовчуванням вимкнено кореневий вхід? Це вирішено декількома публікаціями тут.
Друге питання: чому графічні кореневі входи особливо зневажені?
Усі недоліки неграфічних кореневих логінів стосуються і графічних кореневих логінів. Але коли ви входите у графічний спосіб, ви запускаєте набагато більше програм, що працюють набагато складніше, ніж коли ви входите неграфічно. Весь графічний інтерфейс користувача та всі графічні програми, необхідні для ефективного використання графічного інтерфейсу, працюватимуть як root. Невелика вразливість безпеки в будь-якому з них дозволить комусь взяти повний контроль над вашою системою.
Вхід у систему як корінь взагалі не рекомендується в Ubuntu, але в спільноті безпеки немає єдиної думки, що це загально погана практика. Однак графічні кореневі логіни - це лише погана практика, і майже всі операційні системи їх припиняють або настійно рекомендують проти них.
У меншій мірі наявність некористувального користувача (особливо такого, який має можливість виконувати операції як root з sudo або PolicyKit) у графічному вході представляє ризики. Але вони набагато більш контрольовані, ніж коли все в графічному середовищі насправді має працювати як root з необмеженими можливостями. Тим не менш, для ситуацій, коли безпека є найважливішою, зазвичай доцільно взагалі відмовитися від графічних інтерфейсів, тому Ubuntu Server за замовчуванням не постачається з графічним інтерфейсом і офіційно рекомендує не встановлювати його (хоча це підтримується) .
У світі Windows тепер можна встановити Windows Server таким чином, що істотно виключає графічний інтерфейс користувача (в технічному відношенні деякі елементи залишаються, але він дуже позбавлений, і ви не можете запускати довільні графічні програми). На цьому грунтуються ті ж міркування.
Навіть якщо ви вирішили ввімкнути кореневі логіни, будь ласка, не входьте графічно як корінь. Увімкнення кореневих логінів може поставити вас під загрозу безпеці; запуск цілого графічного середовища як корінь ставить вас до надзвичайно більшого ризику.
Крім того, за винятком інструментів графічного адміністрування, призначених для запуску як root з gksu / gksudo / kdesudo, більшість графічних програм не призначені для запуску як root. Оскільки вони не проходять тестування в цьому режимі, вони можуть вийти з ладу або поводитися нерівномірно (що було б особливо погано, оскільки вони працюють як root ).
Нарешті, навіть деякі інструменти графічного адміністрування, якusers-admin
, наприклад , не вдасться виконати як root, оскільки вони розраховують виконувати звичайні користувачі та виконувати дії як root (навіть ніколи не виконуючись як root) за допомогою PolicyKit.
Відкрийте термінал ( Ctrl+ Alt+ Tабо домашня тире> Інші додатки> Встановлено (розгорнути)> Термінал).
АКТИВУВАТИ РОЗЧИНОВИЙ РАХОТ
У термінальному типі або вставці sudo passwd root
. Введіть свій звичайний пароль для входу (якщо вас вимагають), тоді вам запропонують ввести новий root
пароль і підтвердити його.
ДОДАТИ НОВУ ЗАПОВІДУ ВЛІГУНЯ, ЩО ВІДПОВІДАЄТЬСЯ ВПРОВАДЖЕННЯ КОРОТКУ ТА ЇЇ ПАРОЛЯ
У термінальному типі або вставці. gksudo gedit /etc/lightdm/lightdm.conf
. Це відкриває вікно редактора графічного тексту, де ви можете редагувати файл конфігурації для екрана входу.
Додайте рядок greeter-show-manual-login=true
у нижній частині файлу.
Тепер файл повинен читати так:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-show-manual-login=true
Збережіть lightdm.conf
файл та вийдіть із gedit.
Перезавантажте Ubuntu 12.04, і ви побачите нове вікно «Логін» (замінює попереднє вікно «Інше»), яке дозволяє вводити ім’я користувача та пароль. Введіть root
ім’я користувача, а потім введіть пароль, призначений для кореневого облікового запису.
Я сподіваюся, що це допомагає іншим, хто потребує / бажає root
доступу.
що стосується ubuntu 12.04 LTS, ви можете зробити це за допомогою привілею root:
echo "greeter-hide-users=true" >> /etc/lightdm/lightdm.conf
Потім вам запропонують ввести як ім’я користувача, так і пароль для графічного входу. Я припускаю, що ви вже встановили пароль для root :)
Я знаю, що існує незліченна причина того, що ви не повинні входити безпосередньо як root, однак виходять з деяких рідкісних випадків (наприклад, у тестовому вікні, що працює в vmware), коли ви дійсно оцінили умовність використання root.
Тому що кореневий користувач та адміністратор (в Windows) є рівнозначністю Бога для комп'ютера. Цей користувач може налаштувати що завгодно, від прав доступу до файлів і навіть стерти всю файлову систему. Зазвичай середній домашній користувач працює як адміністратор (під цим ім'ям чи іншим ім'ям, створеним під час першого завантаження). Оскільки будь-яка програма, виконана як цей користувач, є загальносистемною, вона стає небезпечною.
Відсутність контролю над адміністративними привілеями передбачає проблеми з вірусом / зловмисним програмним забезпеченням або навіть саморуйнівними проблемами. Саме через це багато дистрибутивів, включаючи Ubuntu, обмежили перехід до високої потужності додатковим кроком (дещо пізнавальним кроком, який допомагає наполягати на тому, що "будь-які зміни, які я вносимо тут, - це зміни, що мають більш масштабний характер").
Хоча ви не можете ввійти безпосередньо як root (з причин, які інші вже добре пояснили), ви можете запускати програми GUI як root. Наприклад, Система → Адміністрація → Synaptic Package Manager - це графічна програма, яка працює як root.
Щоб запустити програму як корінь (або текстову програму, або програму GUI), просто використовуйте одну з цих команд:
sudo name-of-the-application
gksu name-of-the-application
Вони майже однакові. Основна відмінність полягає в тому, що перший запитує пароль на терміналі, другий використовує графічне вікно діалогу.
sudo
і gksu
більш істотна, ніж там, де ви вводите свій пароль. gksu
є кращим для програм GUI, а sudo
для командного рядка дивіться тут і тут
Корінь дійсно не рекомендується для звичайного використання, але іноді у вас довгий список команд терміналів, яким потрібні привілеї root, і просто зручніше входити в систему як root. Я використовую sudo xterm
або gksu xterm
відкриваю кореневий термінал, я думаю, що його трохи простіше розрізнити, яке вікно терміна має привілеї root, коли у вас є зручна підказка "root @"
Додаткова примітка: Ubuntu не дозволяє користувачам GUI входити в систему як корінь, оскільки Ubuntu заважає вам випадково видалити або видалити важливі файли за допомогою програм GUI (наприклад, nautilus).
Маючи лише інтерфейс користувача CLI, це може зменшити ризик нашої помилки. Але раніше ми не можемо увійти з root навіть у режимі CLI, оскільки Ubuntu створює випадковий пароль для root. Кореневе адміністративне завдання можна виконати лише за допомогою пароля користувача з командою sudo або gksu.
Він заснований на правилі Debian.
Зважаючи на те, що немає жодних вагомих причин для входу в систему як корінь , я б здогадався, що різниця між RH (дозволити кореневий вхід) та ubuntu (робити все, використовуючи sudo / gksu) - питання переваги.
Що стосується іншої частини вашого запитання, ви повинні мати можливість запустити свою графічну установку, увійшовши як звичайний користувач, натискаючи ALT-F2
та входячи gksu
. У діалоговому вікні, що виходить, просто введіть команду, яка запускає ваш інсталятор.
Ви завжди повинні увійти як власний власник, а потім судо виконувати дії як root. Ubuntu налаштований так, щоб ви могли отримати більшість усіх потрібних за замовчуванням доступу. Невеликі зміни подбають про решту (наприклад, додавання звичного до інших груп). Вважається поганою практикою входити як root. Найкраща галузева практика - це налаштування за замовчуванням.
Хтось, хто може увійти як root, може бути дуже поганою з точки зору безпеки.