Почему Ubuntu не позволяет пользователям GUI входить в систему как root во время запуска системы как администратор в Windows?
Почему они ограничивают нас, чтобы войти только через терминал?
Почему Ubuntu не позволяет пользователям GUI входить в систему как root во время запуска системы как администратор в Windows?
Почему они ограничивают нас, чтобы войти только через терминал?
Ответы:
Потому что делать это не рекомендуется, если вы точно не знаете , что делаете. Root - это суперпользователь, то есть он может делать все что угодно - он предназначен только для административных задач. Повседневные задачи могут нести угрозу безопасности, которая будет использоваться, если ВСЕ (или большая часть пользователей) используют root. Подумайте, Windows - 99% вредоносных программ и вирусных проблем от людей, использующих учетные записи администратора для повседневных задач.
Давайте посмотрим на пример.
Что если кто-нибудь проникнет в вашу систему и скажет ей стереть ваши диски? Если вы работаете как обычный пользователь, вы можете (должны) удалять только те файлы, которые принадлежат вам, а не кому-либо еще. Если, скажем, у вас были другие люди, использующие компьютер, их файлы не будут затронуты вообще, как бы вы ни старались. Это означает, что вы не сможете изменить какие-либо системные файлы, и, следовательно, ваша система останется надежной и незатронутой / незараженной.
Однако, если вы работаете от имени пользователя root, вы можете полностью стереть жесткий диск, возможно, нанести ущерб самому оборудованию и, как правило, сделать систему непригодной для использования. Исправление: любой, кто может запустить одну команду от имени пользователя root на вашем компьютере (какой-либо вредоносный веб-сайт или вложение электронной почты), может это сделать.
Взгляните на http://everyjoe.com/technology/explain-why-not-log-on-as-root/ , это хорошая статья, которая может объяснить это лучше, чем я.
РЕДАКТИРОВАТЬ: вот еще один 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
команду в терминале или любой эквивалентный ему графический интерфейс: они запросят ваш пароль, а затем выполнят запрошенную привилегированную операцию (и только эту).
Причина такого поведения, как отмечали другие, заключается в том, что выполнение 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) к графическому дисплею перед вами.
Причины использования sudo в Ubuntu можно найти здесь . Если вам когда-нибудь понадобится быстрый способ «получить права», я использую sudo -s
или sudo -i
.
Помимо множества предупреждений с использованием root, вы можете включить root-вход, выполнив вход и выполнив следующие действия из терминала:
sudo passwd
Сначала вам будет предложено ввести пароль, затем вам будет предложено изменить пароль UNIX. Пароль, который вы введете, будет для root
учетной записи.
В Ubuntu Wiki есть отличная статья о глубине root и sudo в Ubuntu - предостережения и подводные камни.
Здесь есть два вопроса. Во-первых, почему в Ubuntu по умолчанию отключен вход в систему root? Об этом уже говорилось в нескольких постах.
Второй вопрос: почему графические корневые логины особенно оскорблены?
Все недостатки неграфических корневых входов относятся и к графическим корневым входам. Но когда вы входите в систему графически, вы запускаете гораздо больше программ, работая гораздо более сложным образом, чем когда вы входите не графически. Весь графический пользовательский интерфейс и все графические программы, необходимые для эффективного использования графического интерфейса, будут работать как root. Небольшая уязвимость в любой из них позволит кому-то получить полный контроль над вашей системой.
Вход в систему как root вообще не рекомендуется в Ubuntu, но в сообществе безопасности нет единого мнения, что это повсеместно плохая практика. Однако графические корневые учетные записи являются просто плохой практикой, и почти все операционные системы отказались от них или настоятельно рекомендуют против них.
В меньшей степени наличие пользователя без полномочий root (особенно пользователя с возможностью выполнения операций с правами root с помощью sudo или PolicyKit) при графическом входе в систему создает риски. Но они гораздо более управляемы, чем когда все графическое окружение должно работать с правами root с неограниченными возможностями. Тем не менее, в ситуациях, когда безопасность имеет первостепенное значение, обычно рекомендуется вообще отказаться от графических интерфейсов, поэтому Ubuntu Server по умолчанию не поставляется с графическим интерфейсом и официально рекомендует не устанавливать его (хотя это поддерживается). ,
В мире Windows теперь вы можете установить Windows Server таким образом, чтобы по существу исключить графический интерфейс пользователя (технически некоторые элементы остаются, но он очень урезан и вы не можете запускать произвольные графические программы). Это основано на том же рассуждении.
Даже если вы решите включить root-вход, не входите графически как root. Включение корневых учетных записей может привести к немного более высокому риску безопасности; запуск всей графической среды от имени пользователя root повышает риск.
Кроме того, за исключением графических инструментов администрирования, которые предназначены для запуска с правами root с помощью gksu / gksudo / kdesudo, большинство графических программ не предназначены для запуска с правами root. Поскольку они не проходят всестороннюю проверку в этом режиме, они могут давать сбой или работать некорректно (что было бы особенно плохо, так как они работают от имени пользователя root ).
Наконец, даже некоторые графические инструменты администрирования, напримерusers-admin
, не будут работать, если они запускаются от имени пользователя root, поскольку они ожидают, что они будут запускаться обычными пользователями и выполнять действия от имени пользователя root (даже не работая от имени пользователя root) с помощью PolicyKit.
Откройте Терминал ( Ctrl+ Alt+ Tили Dash home> Дополнительные приложения> Установлено (разверните)> Терминал).
АКТИВИРОВАТЬ УЧЕТНЫЙ УЧЕТ
В терминале наберите или вставьте sudo passwd root
. Введите ваш обычный пароль для входа (если вас об этом попросят), затем вам будет предложено ввести новый 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, и вы увидите новое окно «Login» (заменяет предыдущее окно «Other»), которое позволяет вводить имя пользователя и пароль. Введите root
имя пользователя, а затем введите пароль, назначенный для учетной записи root.
Я надеюсь, что это поможет другим, которые нуждаются / хотят root
получить доступ.
что касается Ubuntu 12.04 LTS, вы можете сделать это, используя привилегию root:
echo "greeter-hide-users=true" >> /etc/lightdm/lightdm.conf
Затем вас попросят ввести имя пользователя и пароль для графического входа. Я предполагаю, что вы уже установили пароль для root :)
Я знаю, что существует бесчисленное множество причин, по которым вам не следует входить в систему напрямую как root, однако некоторые редкие случаи выходят (например, в тестовом окне, запущенном в vmware), когда вы действительно оценили удобство работы в качестве пользователя root.
Потому что пользователь root и Администратор (в Windows) являются эквивалентом Бога для компьютера. Этот пользователь может настроить что угодно, от прав доступа к файлу до удаления всей файловой системы. Обычный домашний пользователь довольно часто запускается от имени администратора (либо под этим именем, либо под другим именем, заданным при первой загрузке). Поскольку любая программа, выполняемая от имени этого пользователя, является общесистемной, она становится опасной.
Отсутствие контроля над административными привилегиями допускает наличие вирусов / вредоносных программ или даже самоуничтожение. Именно из-за этого многие дистрибутивы, в том числе Ubuntu, ограничили переход к высокой мощности дополнительным шагом (несколько познавательный шаг, который помогает утверждать, что «любые изменения, которые я делаю здесь, являются изменениями, более масштабными по объему»).
Хотя вы не можете войти в систему напрямую как root (по причинам, которые другие уже хорошо объяснили), вы можете запускать приложения с графическим интерфейсом как root. Например, Система → Администрирование → Synaptic Package Manager - это графическое приложение, работающее с правами суперпользователя.
Чтобы запустить приложение от имени пользователя root (текстовое приложение или приложение с графическим интерфейсом), просто используйте одну из следующих команд:
sudo name-of-the-application
gksu name-of-the-application
Они почти идентичны. Основное отличие состоит в том, что первый запрашивает ваш пароль на терминале, второй использует графическое диалоговое окно.
sudo
и gksu
более значительна, чем когда вы вводите свой пароль. gksu
предпочтительнее для приложений с графическим интерфейсом и sudo
для командной строки, смотрите здесь и здесь
Root действительно не рекомендуется для обычного использования, но иногда у вас есть длинный список команд терминала, которым нужны привилегии root, и просто удобнее войти в систему как root. Я использую sudo xterm
или gksu xterm
чтобы открыть корневой терминал, я думаю, что немного проще отличить, какое окно термина имеет привилегии root, когда у вас есть удобная подсказка термина «root @»
Дополнительное примечание: Ubuntu не позволяет пользователям графического интерфейса входить в систему как root, потому что Ubuntu предотвращает случайное удаление или удаление важных файлов с помощью приложений GUI (например, nautilus).
Только с пользовательским интерфейсом CLI это может снизить риск нашей ошибки. Но раньше мы не могли войти в систему как root даже в режиме CLI, потому что Ubuntu создает случайный пароль для root. Корневая административная задача может быть выполнена только с использованием пароля пользователя с командой sudo или gksu.
Он основан на правиле Debian.
Учитывая, что нет веских причин для входа в систему как root , я бы предположил, что разница между RH (разрешить root-вход) и ubuntu (делать все, используя sudo / gksu) является вопросом предпочтений.
Что касается другой части вашего вопроса, вы сможете запустить графическую установку, войдя в систему как обычный пользователь, нажав ALT-F2
и введя gksu
. В появившемся диалоговом окне просто введите команду, которая запускает ваш установщик.
Вы всегда должны входить в систему под своим именем, а затем с помощью sudo выполнять действия от имени пользователя root. Ubuntu настроен так, чтобы предоставить вам практически весь доступ, необходимый по умолчанию. Незначительные изменения позаботятся обо всем остальном (например, добавление вашего использованного в другие группы). Вход в систему от имени root считается плохой практикой. Лучшая отраслевая практика - стандартная настройка, установленная здесь.
Кто-то, кто может войти в систему как root, может быть очень плохим с точки зрения безопасности.