Почему нет возможности войти в систему как root?
Почему Ubuntu не позволяет пользователям GUI входить в систему как root во время запуска системы как администратор в Windows?
Почему они ограничивают нас, чтобы войти только через терминал?
14 ответов
Потому что делать это не рекомендуется, если вы точно не знаете , что делаете. 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 действительно не рекомендуется для обычного использования, но иногда у вас есть длинный список команд терминала, которым нужны привилегии root, и просто удобнее войти в систему как root. я использую sudo xterm
или же gksu xterm
чтобы открыть корневой терминал, я думаю, что немного проще отличить, какое окно термина имеет привилегии root, когда у вас есть удобная подсказка термина "root@"
Потому что пользователь root и Администратор (в Windows) являются эквивалентом Бога для компьютера. Этот пользователь может настроить что угодно, от прав доступа к файлу до удаления всей файловой системы. Обычный домашний пользователь довольно часто запускается от имени администратора (либо под этим именем, либо под другим именем, заданным при первой загрузке). Поскольку любая программа, выполняемая от имени этого пользователя, является общесистемной, она становится опасной.
Отсутствие контроля над административными привилегиями допускает наличие вирусов / вредоносных программ или даже самоуничтожение. Именно из-за этого многие дистрибутивы, в том числе Ubuntu, ограничили переход к высокой мощности дополнительным шагом (несколько познавательный шаг, который помогает утверждать, что "любые изменения, которые я делаю здесь, являются изменениями, более масштабными по объему").
Хотя вы не можете войти в систему напрямую как root (по причинам, которые другие уже хорошо объяснили), вы можете запускать приложения с графическим интерфейсом как root. Например, Система → Администрирование → Synaptic Package Manager - это графическое приложение, работающее с правами суперпользователя.
Чтобы запустить приложение от имени пользователя root (текстовое приложение или приложение с графическим интерфейсом), просто используйте одну из следующих команд:
sudo name-of-the-application
gksu name-of-the-application
Они почти идентичны. Основное отличие состоит в том, что первый запрашивает ваш пароль на терминале, второй использует графическое диалоговое окно.
Учитывая, что нет веских причин для входа в систему как root, я бы предположил, что разница между RH (разрешить root-вход) и ubuntu (делать все, используя sudo / gksu) является вопросом предпочтений.
Что касается другой части вашего вопроса, вы сможете запустить графическую установку, войдя в систему как обычный пользователь, нажав ALT-F2
и входя gksu
, В появившемся диалоговом окне просто введите команду, которая запускает ваш установщик.
Дополнительное примечание: Ubuntu не позволяет пользователям графического интерфейса входить в систему как root, потому что Ubuntu предотвращает случайное удаление или удаление важных файлов с помощью приложений GUI (например, nautilus).
Только с пользовательским интерфейсом CLI это может снизить риск нашей ошибки. Но раньше мы не могли войти в систему как root даже в режиме CLI, потому что Ubuntu создает случайный пароль для root. Корневая административная задача может быть выполнена только с использованием пароля пользователя с командой sudo или gksu.
Он основан на правиле Debian.
Вы всегда должны входить в систему под своим именем, а затем с помощью sudo выполнять действия от имени пользователя root. Ubuntu настроен так, чтобы предоставить вам практически весь доступ, необходимый по умолчанию. Незначительные изменения позаботятся обо всем остальном (например, добавление вашего использованного в другие группы). Вход в систему от имени root считается плохой практикой. Лучшая отраслевая практика - стандартная настройка, установленная здесь.
Кто-то, кто может войти в систему как root, может быть очень плохим с точки зрения безопасности.
Root не рекомендуется для повседневных ежедневных задач. Поскольку он предоставляет вам привилегии суперпользователя, он может быть использован не по назначению. Таким образом, при входе в систему нет возможности для пользователя root.