Почему это плохо для входа в систему как корень?

Я часто сталкивался с сообщениями на форумах или других веб-сайтах, где Вы видите, что люди шутят таким способом о выполнении/входе в систему как корень, как будто это - что-то ужасное, и все должны знать об этом. Однако нет очень, который поиск показывает по вопросу.

Это может быть широко известно экспертам Linux, но я действительно не знаю почему. Я не забываю всегда работать как корень, когда я сначала попробовал Linux несколько лет назад (Redhat и Мандрагора), и не помните сталкиваться с любыми проблемами из-за этого.

Существуют на самом деле некоторые дистрибутивы, которые имеют яркий красный фон с аварийными знаками на всем протяжении его как обои для пользователя root (SuSe?). Я все еще использую счет "Администратора" на регулярное использование на моей установке Windows и никогда не сталкивался ни с какими проблемами там также.

210
задан 13 September 2017 в 10:04

23 ответа

Он разрушает модель безопасности, которая существовала в течение многих лет. Приложения предназначены для запуска с неадминистративной безопасностью (или как простые смертные), поэтому для изменения базовой системы необходимо повысить их привилегии. Например, вы не захотите, чтобы недавний крах Rhythmbox уничтожил весь ваш каталог /usr из-за ошибки. Или та уязвимость, которая только что была размещена в ProFTPD, чтобы позволить злоумышленнику получить оболочку ROOT.

Это просто хорошая практика для любой операционной системы - запускать приложения на пользовательском уровне и оставлять административные задачи корневому пользователю, и только на основании необходимости.

164
ответ дан 22 November 2019 в 22:46

Если приложения запускаются от имени root, то нет никакой гарантии, что ни одно из них не выполнит

rm -rf /

(Это пример команды, которая должна а не выполняться)

3
ответ дан 22 November 2019 в 22:46

Программное обеспечение основано на разделяемых библиотеках, зависимостях, конфигурационных файлах и т.д.
. В большинстве случаев один клик в приложении вызывает "цепную реакцию" множественных изменений, а не только там, где вы думаете, что это возможно
. Когда эти изменения коснутся критических для системы настроек, вам, как пользователю, будет полезно это знать.
. Вот почему root доступ является хорошей моделью безопасности:
Если с вашей системой произойдет что-то критическое, вы получите уведомление с запросом на повышение привилегий.

2
ответ дан 22 November 2019 в 22:46

Слишком легко запутаться, когда работаешь как корень. Вы можете засорять всю систему одной командой...

5
ответ дан 22 November 2019 в 22:46

Могу добавить, что есть разница между администратором в Windows и root в Unix. Администратор все еще имеет некоторые ограничения в системах, где root не имеет никаких ограничений. Правильным аналогом root в Windows является пользователь System.

Плохая вещь при использовании ПК под root/System - это то, что вы можете случайно уничтожить что угодно без предупреждения со стороны операционной системы.

5
ответ дан 22 November 2019 в 22:46

При входе в систему с правами root приложения, скрипты или команды командной строки могут получить доступ к чувствительным частям программного обеспечения, которые могут повредить систему. Это может быть результатом неопытности со стороны пользователя или программиста или из-за вредоносного скрытого кода.

6
ответ дан 22 November 2019 в 22:46

За этим подходом стоит множество аспектов. Некоторые из них:

  • Корень мощный.
  • В Unix и Unix-подобных системах привилегии системного администрирования все или ничего. Пользователь либо имеет права root, либо нет, а права root подразумевают полный контроль над машиной. Если машина, о которой идет речь, используется более чем одним человеком, или root имеет доступ к другим системам или пользовательским файлам, более приемлемо дать некоторым пользователям частичные привилегии root.

  • Пользователь root может скрыть все свои действия.
  • sudo записывает в журнал каждую команду, выполняемую через sudo. Наличие записи о том, что делается с помощью sudo, помогает нам диагностировать проблемы с отдельными системами/процессами и общие проблемы конфигурации, а также помогает нам определить необходимые улучшения.

  • Пароль root дает доступ к любой команде в системе.
  • sudo через свой конфигурационный файл может дать пользователю root доступ к определенному набору команд. Это также позволяет избежать эффекта "все или ничего", позволяя нам дать отдельным пользователям больше контроля над их машинами и помочь себе избавиться от общих проблем.

    Вот хорошая статья : http://cf.stanford.edu/policy/root

    10
    ответ дан 22 November 2019 в 22:46

    Это как вооружить маленького ребёнка пистолетом AK47, в то время как он может с удовольствием играть со своим пистолетом для пейнтбола. ;)

    Я имею в виду, что это неправильно, потому что у Вас и Ваших приложений будет больше привилегий, чем нужно, и именно тогда вещи могут и иногда могут пойти не так :(

    14
    ответ дан 22 November 2019 в 22:46

    Очень хороший вопрос... Позвольте ответить на него с практической точки зрения:

    Когда я начал использовать Linux, то есть более 10 лет назад, основные дистрибутивы не рекламировали использование не корневых аккаунтов так много, как сегодня. Так же, как я привык к Windows, я не видел смысла в использовании ограниченной учетной записи пользователя. В частности, потому что мне приходилось очень часто вводить "su" - sudo тогда не была настолько популярна. ;-) Поэтому я всегда входил в систему как root, потому что у меня было много работы по обслуживанию, чтобы хорошо настроить систему. Но знаете что, любая свежеустановленная система быстро становилась очень нестабильной.

    Одна конкретная проблема, например: У меня не было так много места на жестком диске, зарезервированного для Linux, так что несколько раз со мной случалось, что на разделе оставалось 0 байт. Может быть, я не совсем точен, потому что не знаю точного механизма, но когда вы заполняете диск не корневой учетной записью, всегда остается несколько килобайт. Но если у вас действительно осталось 0 байт, ваша система допускает странные ошибки, и в итоге вы можете получить некоторые трудно исправляемые повреждения в вашей системе, потому что в фоновом режиме запущено много системного программного обеспечения...

    Другое дело: Это деление между корневым и некорневым держит вашу систему хорошо организованной. Будучи пользователем root, Вы можете поддаться искушению не устанавливать новые приложения чисто, что оставляет Вам грязную, жестко поддерживаемую систему.

    Но что хорошо: современные дистрибутивы выполняют большую часть задач по администрированию за Вас, так что Вам редко приходится обманывать кишки Вашей системы Linux с учётной записью root. Вводить время от времени пароль достаточно, остальное делают скрипты дистрибутива

    Но я сомневаюсь, что у вас не было проблем с системой Windows, если вы использовали 95 oder 98. (По крайней мере, у меня были проблемы с этим...) Из-за отсутствия четкого разделения между Администратором и обычными пользовательскими "традиционными" приложениями Windows предполагают, что они могут делать все, что угодно, например, устанавливать шпионское ПО, если им так хочется, даже не сказав вам об этом. Майкрософт занимался этим вопросом при выпуске Vista. (Эффективно реализовав механизм sudo.) Так что у людей появились очень раздражающие диалоги с надписью "Вы не можете этого сделать". Для некоторых программ, не совместимых с Vista, для их установки требовалось несколько грязных взломов, даже будучи администратором...

    11
    ответ дан 22 November 2019 в 22:46

    Учетная запись Root отключена по умолчанию - это означает, что она существует, но не может быть использована (кроме как в режиме восстановления). Это означает, что злоумышленник знает о вашей учетной записи root, но не может ее использовать, даже если у него есть пароль root. Таким образом, злоумышленник должен угадать как имя пользователя, имеющего права администратора, так и пароль этого пользователя (что гораздо сложнее, чем просто пытаться отгадать пароль root). В XP, если у вас установлена консоль восстановления, любой, кто имеет физический доступ к вашему ящику, может загрузиться в него (RC) - пароль не требуется. То же самое, что и режим восстановления в Ubuntu.

    В Ubuntu, когда говорят, что корень отключен - на самом деле это означает, что учетная запись заблокирована. Учетная запись блокируется путем изменения пароля на значение, которое не соответствует возможному зашифрованному значению. Это фактически не позволяет никому войти в систему от имени root - так как невозможно будет ввести пароль. Так как все еще есть время, когда необходим доступ с правами root - ядро Ubuntu было модифицировано, чтобы разрешить локальный вход с правами root только в однопользовательском режиме.

    Также смотрите эту страницу

    15
    ответ дан 22 November 2019 в 22:46

    Одной из причин не запускать от корня, которая не была (пока) определена другими ответами, является прослеживаемость. Вероятно, она имеет меньшее значение на машинах, которые в основном являются однопользовательскими (ваш рабочий стол или ноутбук), но на машинах сервера, если кто-то вошел в систему как root, вы не знаете, кто виноват в предпринятых действиях. Поэтому, большинство профессиональных организаций с множеством систем и множеством администраторов, которым нужны root привилегии, требуют, чтобы люди входили в систему, используя свой собственный идентификатор пользователя (и пароль), а затем использовали sudo или подобные программы для работы с root привилегиями, когда это необходимо.

    В противном случае, основными причинами не запуска от имени root являются:

    • Минимизация риска получения повреждений от несчастных случаев. Если вы запустите rm -fr / home/me/my-subdir от имени root, то вы просто удалили все важные вещи с вашей машины из-за того, что после (первого) косой черты на ней осталось место - потому что сначала были добавлены такие мелочи, как ядро, /bin и каталог /etc. Unix расстраивается, если вы их теряете.

    • Минимизируйте риск повреждения от вредоносных внешних сайтов. Если вы просматриваете как root, вы более уязвимы для загрузки вредоносных материалов.

    Я использую MacOS X больше, чем Ubuntu, но там, по умолчанию, root отключен, и он все еще находится на моей машине. Я регулярно обновляю ядро и другие подобные операции - используя sudo (за кулисами). Похожие приёмы применимы и к Linux в целом.

    В принципе, для сокращённых периодов работы следует использовать только всемогущие привилегии root, чтобы избежать риска ошибок.

    34
    ответ дан 22 November 2019 в 22:46

    Выполнение от имени root плохо, потому что:

    1. Глупость: Ничто не мешает вам сделать какую-нибудь глупость. Если вы пытаетесь изменить систему в любом случае, что может быть вредно, вам нужно сделать sudo, что в значительной степени гарантирует паузу во время ввода пароля, чтобы вы поняли, что вы собираетесь сделать возможное большое / дорогостоящее изменение.
    2. Безопасность: Это уже упоминалось довольно много раз в этом вопросе, но в основном это одно и то же, труднее взломать, если вы не знаете учетную запись администратора пользователя, входящего в систему. root означает, что у вас уже есть половина рабочего набора учетных записей администратора.
    3. На самом деле он вам не нужен: Если вам нужно выполнить несколько команд от имени root и вас раздражает необходимость несколько раз вводить свой пароль по истечении срока действия sudo, все, что вам нужно сделать - это sudo -i, и вы теперь являетесь пользователем root. Хотите запустить несколько команд с помощью труб? Тогда используйте sudo sh -c "comand1 | command2".
    4. Вы всегда можете использовать ее в консоли восстановления: Консоль восстановления позволяет вам попытаться восстановиться от совершения каких-либо глупостей или исправления проблемы, вызванной приложением (которое вам все равно пришлось запускать как sudo :)). В Ubuntu нет пароля для учетной записи root в этом случае, но вы можете выполнить поиск по сети для изменения этого пароля, это усложнит задачу любому, кто имеет физический доступ к вашему ящику.

    Причина, по которой вы не смогли найти информацию о том, почему это плохо, заключается в том, что, ну, в интернете слишком много данных :) и что многие люди, которые используют Linux уже долгое время, думают так же, как и вы. Такой способ мышления об учетной записи root довольно новый (может быть, десятилетие?) и многие до сих пор раздражены тем, что им приходится использовать sudo. Особенно, если они работают на сервере, что означает, что они пришли с намерением внести системные изменения. Наверное, это связано с предыдущим плохим опытом и стандартами безопасности, которые большинство сисадминов знают лучше, но им все равно это не нравится :).

    53
    ответ дан 22 November 2019 в 22:46

    Это хороший вопрос. Я думаю, что ответ немного отличается в зависимости от того, говорите ли вы об установке сервера или рабочего стола.

    На рабочем столе редко используется учетная запись root. На самом деле, Ubuntu поставляется с отключенным корневым доступом. Все изменения, требующие привилегий суперпользователя, выполняются через sudo, а его графические знаки gksudo и kdesudo. Учитывая, что установить пароль root легко, однако, почему люди не делают этого?

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

    Более верной точкой зрения на однопользовательскую систему является то, что пользователь не может случайно сделать систему непригодной для использования. Если пользователь непреднамеренно выдаст команду, которая удалит все файлы, он все равно сможет загрузить систему, даже если данные будут потеряны.

    Кроме того, большинство современных пользовательских приложений (X11) построены исходя из предположения, что они запускаются под обычной учетной записью пользователя и без прав администратора. Таким образом, некоторые программы могут некорректно вести себя при запуске от имени root.

    На многопользовательской системе, имеющей доступ только в неграфической оболочке, многие из этих причин не применимы. Однако, по умолчанию Ubuntu все еще имеет недоступную учетную запись root. Во-первых, существует реальная разница между получением доступа к учетной записи пользователя (с правами sudo) через дыру в безопасности и получением доступа к root, так как в первом случае, если сбой в работе других пользователей приведет к запуску sudo, то в качестве дополнительного шага безопасности все равно потребуется ввести пароль учетной записи. С другой стороны, полезно выполнять множество административных задач из учетной записи пользователя и вызывать sudo только в том случае, если привилегии суперпользователя абсолютно необходимы. Таким образом, при установке программы из исходного кода, желательно собрать исходный код - запустив configure и make - внутри каталога пользователя и только используя sudo сделать установку на последнем шаге. Опять-таки, это усложняет самострел (и других пользователей многопользовательской системы) в ногу, и уменьшает вероятность того, что сборочные скрипты нанесут системный хаос. Таким образом, даже на сервере рекомендуется придерживаться администрирования Ubuntu на основе судо .

    39
    ответ дан 22 November 2019 в 22:46

    Только одно слово: безопасность.

    1. Вы зарегистрированы как root = все приложения запущены с привилегиями root -- каждая уязвимость в Firefox, Flash, OpenOffice и т.д. теперь может уничтожить вашу систему, потому что возможные вирусы теперь имеют доступ везде. Да, вирусов для Ubuntu/Linux всего несколько, но это также из-за хорошей безопасности и непривилегированного пользователя по умолчанию.
    2. Дело не только в вирусах - небольшая ошибка в приложении может стереть некоторые системные файлы или...
    3. Когда вы зарегистрированы как root, вы можете делать все - система не будет спрашивать! Вы хотите отформатировать этот диск? Хорошо, всего один клик и все готово, потому что вы root и знаете, что делаете...
    86
    ответ дан 22 November 2019 в 22:46

    Причины против использования root:

    • Могут случайно уничтожить системные файлы
    • Могут быть заражены
    • Действия не регистрируются

    Причины использования root:

    • Доступ ко всему, без ввода паролей
    • графический интерфейс, без использования терминалов для управления системными файлами / каталогами

    Мне кажется, что учетная запись без полномочий root может стать жертвой этих причин против использования root, самое большее, что он добавляет, - это подтверждение ваших действий . Я думаю, что до тех пор, пока вы знаете, что делаете, вы в полной безопасности используете root. Вот, я это сказал.

    3
    ответ дан 22 November 2019 в 22:46
    rm /*
    

    Допустим, вы очищали административную территорию. Вам надоел пароль, поэтому вы sudo su . Вы отвлекаетесь всего на секунду и забываете, что переходите к / . Тогда вы rm * . Я сделал это. Вы можете получить все обратно, но это PITA. О, и он тоже спустился в / media !

    8
    ответ дан 22 November 2019 в 22:46

    Почему нет входа в систему с правами root?

    Хотя вы можете создать пароль для учетной записи суперпользователя, позволяющий входить в систему как root, стоит упомянуть, что это не ' • «Ubuntu» способ делать вещи. Ubuntu специально выбрала , а не , чтобы по умолчанию указывать логин и пароль root. Вместо этого при установке Ubuntu по умолчанию будет использоваться sudo .

    Sudo - это альтернатива предоставлению пользователям пароля root для выполнения обязанностей суперпользователя. При установке Ubuntu по умолчанию тому, кто установил ОС, по умолчанию дается разрешение «sudo».

    Любой, у кого есть разрешение «sudo», может выполнять что-то «как суперпользователь», предварительно ожидая sudo для своих команда. Например, чтобы запустить apt-get dist-upgrade в качестве суперпользователя, вы можете использовать:

    sudo apt-get dist-upgrade
    

    Преимущества подхода sudo

    • Используя sudo, вы заранее выбираете, какие пользователи имеют доступ к sudo. Им не нужно запоминать пароль root, так как они используют свой собственный пароль.

    • Если у вас несколько пользователей, вы можете отозвать доступ суперпользователя, просто удалив их разрешение sudo, без необходимости менять пароль root и уведомлять каждый новый пароль.

    • Вы даже можете выбрать, какие команды пользователю разрешено выполнять с помощью sudo, а какие запрещены для этого пользователя.

    • И, наконец, если есть нарушение безопасности, он может в некоторых случаях уйти лучший журнал аудита, показывающий, какая учетная запись пользователя была взломана.

    Sudo упрощает выполнение одной команды с привилегиями суперпользователя. При входе в систему с правами root вы навсегда остаетесь в оболочке суперпользователя, для выхода из которой необходимо использовать exit или logout . Это может привести к тому, что люди будут оставаться в оболочке суперпользователя дольше, чем необходимо, просто потому, что это удобнее, чем выход из системы и повторный вход позже.

    С sudo у вас все еще есть возможность открыть постоянную (интерактивную) оболочку суперпользователя с помощью команды :

    sudo su
    

    ... и это все еще можно сделать без пароля root, потому что sudo дает привилегии суперпользователя команде su .

    И аналогично, вместо ] su - для оболочки входа вы можете использовать sudo su - или даже sudo -i .

    Однако при этом вам просто нужно знать, что вы действует как суперпользователь для каждой команды. Хороший принцип безопасности - не оставаться суперпользователем дольше, чем необходимо, просто чтобы уменьшить вероятность случайного повреждения системы (без этого вы можете повредить только файлы, принадлежащие вашему пользователю).

    Просто для пояснения, вы можете , если хотите, дать пользователю root пароль, позволяющий входить в систему как root, если вы специально хотите сделать это таким образом. Я просто хотел сообщить вам о соглашении Ubuntu о предпочтении sudo вместо этого и попытаться объяснить некоторые причины, по которым Ubuntu поддерживает этот подход по умолчанию.

    Почему бы не разрешить вход в систему root через SSH?

    Даже если у вашего пользователя root есть пароль, позволяющий вам войти в систему как root, по-прежнему хорошей практикой безопасности является отключение прямого входа root извне, например, в SSH. Для пользователей разумно иметь su - или sudo после первоначального входа в систему.

    Потенциальные выгоды от этого в основном связаны с безопасностью:

    • Это снижает атаку vector, удалив возможность удаленного подбора пароля root. Обычно сервер в Интернете постоянно подвергается попыткам подбора пароля root через SSH.

    • Он создает лучший контрольный журнал, так что даже в случае взлома, когда злоумышленник позже получает привилегии суперпользователя, вы можете видеть, чья учетная запись пользователя использовалась для получения доступа.

    7
    ответ дан 22 November 2019 в 22:46

    TL;DR: Делайте вещи как корневые только тогда, когда это необходимо. sudo делает это довольно просто. Если вы включите логины root, вы все равно сможете следовать этому правилу, просто будьте осторожны. Хотя включение логинов с правами root не является на самом деле небезопасным, если это сделано правильно, вам не нужно включать логины root, потому что у вас есть sudo.

    Здесь действительно есть два связанных вопроса.

    • Почему плохо входить в систему с правами root для ежедневного использования на компьютере (просмотр веб-страниц, электронная почта, работа с текстом, игры и т.д.). )?
    • Почему по умолчанию Ubuntu отключает вход в систему от корневой системы и использует sudo и polkit для того, чтобы администраторы могли выполнять определенные команды от имени корневой системы?

    Почему бы не запускать всё от имени корневой системы?

    Большинство других ответов посвящено этому вопросу. Все сводится к следующему:

    1. Если вы используете полномочия root для задач, которые не требуют их выполнения, и в конечном итоге делаете то, что не хотели делать, вы можете изменить или навредить вашей системе так, как не хотите.
    2. Если вы запускаете программу от имени root, когда в этом нет необходимости, и она заканчивает тем, что делает что-то, что вы не хотели, например, из-за уязвимости в безопасности или другой ошибки - это может изменить или навредить вашей системе так, как вы не хотите.

    Это правда, что даже не делая вещи от имени root, вы можете навредить. Например, вы можете удалить все файлы в вашем собственном домашнем каталоге, который обычно включает в себя все ваши документы, не запускаясь от имени root! (Надеюсь, у вас есть резервные копии.)

    Конечно, как у root, есть дополнительные способы случайно уничтожить те же самые данные. Например, вы можете указать неверный аргумент из= в команду dd и записать необработанные данные поверх ваших файлов (что делает их восстановление гораздо труднее, чем если бы вы их просто удалили).

    Если вы единственный человек, который использует ваш компьютер, то вред, который вы можете причинить только как root, на самом деле не может быть больше, чем вред, который вы можете причинить с вашими обычными пользовательскими привилегиями. Но это все равно не причина расширять риск, чтобы включить дополнительные способы испортить вашу систему Ubuntu.

    Если запуск с не корневой учетной записью пользователя помешал вам осуществлять контроль над вашим собственным компьютером, то это, конечно, было бы плохим компромиссом. Но это не... в любой момент, когда вы на самом деле хотите выполнить действие от имени root, вы можете сделать это с помощью sudo и других методов .

    Почему бы не сделать возможным вход от имени root?

    Мысль о том, что возможность входа от имени root по своей природе небезопасна, является мифом. В некоторых системах учетная запись root включена по умолчанию; в других системах по умолчанию используется sudo, а в некоторых конфигурируется и то, и другое. Например, OpenBSD, которая широко и обоснованно считается самой безопасной ОС общего назначения в мире, поставляется с включенной учетной записью root для локального входа в систему на основе пароля.

  • Другие уважаемые операционные системы, которые делают это, включают RHEL, CentOS, и Fedora.
  • Debian (из которого Ubuntu получает ) пользователь решает, какой подход будет настроен во время установки системы.
  • Это не является объективно неправильным, если в системе включена учётная запись root, при условии, что

    1. вы всё ещё используете её только тогда, когда это действительно необходимо, и
    2. вы ограничиваете доступ к ней соответствующим образом.

    Часто новички спрашивают, как включить учётную запись root в Ubuntu. Мы не должны скрывать от них эту информацию, но обычно, когда люди спрашивают об этом, это происходит потому, что у них ошибочно сложилось впечатление, что они нуждаются в для включения учётной записи root. На самом деле, в этом почти никогда нет необходимости, поэтому при ответе на такие вопросы важно это объяснить. Включение учётной записи root также облегчает самоуспокоённость и выполнение действий в качестве root, которые не требуют привилегий root. Но это не означает, что включение учётной записи root само по себе небезопасно.

    sudo поощряет и помогает пользователям выполнять команды от имени root только тогда, когда это необходимо. Чтобы выполнить команду от имени root, введите sudo, пробел, а затем команду. Это очень удобно, и многие пользователи всех уровней навыков предпочитают такой подход.

    Короче говоря, вам не нужно включать логины root, потому что у вас есть sudo. Но до тех пор, пока вы используете его только для административных задач, которые требуют этого, он примерно так же безопасен для включения и входа в систему как и root, до тех пор, пока он только в этих способах :

    • Локально, с неграфической виртуальной консоли.
    • С помощью команды su при входе в систему с другой учетной записи.

    Однако, если вы войдете от имени root следующим образом:

    • Графически. Когда вы входите в систему графически, вы запускаете множество приложений, чтобы обеспечить графический интерфейс, и в конечном итоге вы запускаете еще больше приложений от имени root, чтобы использовать этот интерфейс для чего угодно. Это идет вразрез с принципом, что только программы, запущенные от имени root, действительно нуждаются в привилегиях root. Некоторые из этих программ могут содержать ошибки, включая ошибки безопасности.

      Более того, есть причина, не связанная с безопасностью, чтобы избежать этого. Вход в систему в графическом виде от имени root не очень хорошо поддерживается--как упоминает loevborg, разработчики настольных окружений и графических приложений не часто тестируют их от имени root. Даже если они это делают, вход в графическое окружение рабочего стола от имени root не получает реального альфа- и бета-тестирования пользователями, так как практически никто не пытается это сделать (из соображений безопасности, описанных выше).

      Если вам необходимо запустить конкретное графическое приложение от имени root, вы можете использовать gksudo или sudo -H. Это запускает гораздо меньше программ от имени root, чем если бы вы на самом деле вошли в систему с учетной записью root.

    • удаленно. Учетная запись root на самом деле может делать все, что угодно, и она имеет одно и то же название практически на каждой Unix-подобной системе. Входя в систему от имени root через ssh или другие удаленные механизмы, или даже через , настраивая удаленные службы, чтобы разрешить это , вы значительно облегчаете доступ злоумышленникам, включая автоматизированные скрипты и вредоносное ПО, запущенное на бот-сетях, с помощью перебора, атак по словарю (и возможно некоторые ошибки безопасности).

      Вероятно, риск не очень велик, если вы разрешаете только вход с ключом , а не вход с паролем .

    По умолчанию в Ubuntu не включены ни графические входы в систему, ни удаленные входы через SSH, , даже если вы разрешаете вход в систему от имени root. То есть, даже если вы включите логин от имени root, он все равно будет включен только достаточно безопасными способами.

    • Если вы запустили ssh сервер в Ubuntu и не изменили /etc/sshd/ssh_config, то он будет содержать строку PermitRootLogin без пароля. Это отключает логин root на основе пароля, но разрешает логин на основе ключа. Однако, по умолчанию ни один ключ не настроен, так что, если вы его не настроили, это тоже не сработает. Более того, удаленный вход в систему с помощью ключа гораздо менее плох, чем удаленный вход в систему с помощью пароля, отчасти потому, что он не создает риска атак перебором и атак по словарю.
    • Даже несмотря на то, что настройки по умолчанию должны защищать вас, я думаю, что все равно хорошей идеей будет проверить вашу конфигурацию ssh, если вы собираетесь включить учетную запись root. И если вы используете другие службы, предоставляющие удалённый вход, такие как ftp, то вы также должны их проверить.

    В заключение:

    • Делайте что-то в качестве root только тогда, когда вам это нужно; sudo поможет вам это сделать, в то же время предоставляя вам полную мощь root в любое время.
    • Если вы понимаете, как работает root, и опасность его чрезмерного использования, то включение учётной записи root не является серьёзной проблемой с точки зрения безопасности.
    • Но если вы понимаете это, то вы также знаете, что вам почти наверняка не нужно включать учётную запись root.

    Для получения дополнительной информации о root и sudo, включая некоторые дополнительные преимущества sudo, о которых я здесь не рассказывал, я настоятельно рекомендую RootSudo в вики-справке Ubuntu.

    23
    ответ дан 22 November 2019 в 22:46

    Нет опасности при ведении журнала с правами root при осторожном использовании.

    Хотя я считаю, что отключение root - предпочтительное решение, потому что злоумышленник не может использовать грубую силу.

    Одно из решений - создать пользователя в группе sudo с неясным именем, например gamer , и использовать sudo для выполнения административных задач.

    Следовательно, злоумышленник должен не только угадывать пароль. этого административного пользователя, но и его логин. Что неочевидно, если пользователь, использующий sudo, имеет имя входа вроде kitty или gamer или что-то подобное.

    3
    ответ дан 22 November 2019 в 22:46

    Учитывая опытный и внимательный пользователь, я не уверен, что правильный ответ существует. Я не видел этого ответа, поэтому решил вмешаться.

    Что мне не нравится, так это непреднамеренные изменения разрешений в многопользовательских системах , которые мне нужны для chmod позже. Исправление с помощью chmod постфактум гораздо больше раздражает, чем необходимость sudo, но это зависит от того, что я запланировал.

    3
    ответ дан 22 November 2019 в 22:46

    В конечном итоге запуск с правами root не причинит вреда. Это просто кучка параноиков, которые думают, что переустановка ОС невозможна. Аргумент «Кто-то может скомпрометировать программу ...», и что? если они это сделают, то они уже могут ввести ваш пароль в кейлог или просто отобразить запрос пароля root, а вы дать им пароль. Сдуть вашу систему, потому что вы выбираете все в / и удаляете? да ладно, достаньте установщик и переустановите. Это займет менее 20 минут, возьмите кофе и остынь. Root в порядке, я пользуюсь root, сколько себя помню, и знаете, что он делает? Это делает установку пакетов менее головной болью. Вам не нужно вводить пароль root каждые 5 минут, как обычно.Вы не столкнетесь с проблемами при попытке сохранить / отредактировать файлы конфигурации системы, потому что это только права root. Это намного проще и лучше работать с правами root.

    1
    ответ дан 22 November 2019 в 22:46

    Это двуликая проблема с несколькими ответами.

    Для проверки некоторых реалий на постоянно повторяющиеся, но очень плохие ответы на это:

    установка настольного компьютера:

    • используйте своих пользователей и, при необходимости, sudo, в противном случае успешно используйте вектор атаки, потому что вы на самом деле не знаете, что делаете, и ваша система скомпрометирована
    • в больших компаниях, скорее всего, вы даже не имеете привилегий root на своей рабочей станции, даже если вы администратор, в зависимости от количества присутствующих шляп tin-foil.

    установки сервера:

    • существует огромная разница между выполнением ваших коротких рабочих сессий с правами root (при условии, что у вас есть безпарольные логины, правильное управление ключами ssh для всех серверов - и fail2ban, сконфигурированный для всех парольных логинов, пока вы на нём работаете) и запуском каждого демона/сервиса с собственным пользователем (что является обязательным условием) - большинство людей, кажется, не понимают разницы
    • ради забавы: попробуйте использовать ваши утилиты управления конфигурацией, контролируемые версиями (asible/puppet/salt/weverever с файлами с git-сервера), только без права root доступа. (у вас ведь есть какой-то AAA для этих специальных систем, а также для ваших систем мониторинга и резервного копирования, не так ли? )
    • также: по умолчанию rm -rf / не работает в большинстве распространённых дистрибутивов IIRC
    • на любом серьёзном рабочем месте есть jumphost/bastion-host для доступа к парку серверов, который ведёт журнал всего, что вы делаете в любом случае, что, скорее всего, дополнительно защищено 2FA
    • если у вас есть sudo и нет jumphost'а, то вы можете исправить журналы хостов, чтобы они закончились в любом случае, если они не зеркалируются в реальном времени, т.е. если они не зеркалируются в реальном времени.
    • когда также "очищаются" журналы ssh, вы даже не можете доказать, что были на хосте, если нет дополнительной системы сетевого мониторинга

    Для любой компании любого размера (читайте: скорее всего, SOHO со статическим ip) между этими двумя крайностями, в которых отсутствуют достойные меры мониторинга/резервирования/автоматики/логинга, может быть полезно усилить использование sudo на серверах. (Которую обходят люди, делающие sudo su - ASAP после подключения, позволяя всем вашим намерениям протоколировать то, что случилось, пропасть впустую даже без злонамеренных намерений, как только более одного пользователя root войдет в систему. Удачи в изменении этого через принудительные процедуры и лечение людей драконовскими мерами за неподчинение правилам. Жизнь всегда находит способ.)

    Но если у вас нет, по крайней мере, fail2ban, чтобы защитить ваши логины паролей (если они есть, особенно на системах с доступом в интернет), плюс не забывайте о правильной работе с паролями (инструменты управления паролями, политики хранения, никаких мастер-паролей, работая с ними при колебаниях сотрудников ...) и иметь некоторую форму правильного управления обновлениями для парка серверов, так что все серверы исправляются регулярно, вы, вероятно, будете взломаны когда-нибудь в любом случае, будь то изнутри или снаружи.

    И всегда религиозно использовав sudo и принудив его использование среди всех людей, вы не измените вашу вероятность получения права собственности в этом случае.

    2
    ответ дан 22 November 2019 в 22:46

    Я не понимаю! Я не вижу проблем с запуском root, но все зависит от того, что вы пытаетесь сделать. Если вы используете Kali, я бы сказал, что вы в любом случае глубоко залезли, или почему вы выбрали Kali? Также, если это Kali, я полагаю, что вы знаете, как исправить то, что может быть сломано до степени занавеса.

    Запустив любой другой Linux, вы можете набирать sudo каждый раз, когда вам понадобится root.

    Я использую root в Kali, когда некоторые глупые файлы дублируются из различных приложений, и я хочу удалить файлы, которые у меня уже есть, или некоторые, которые оболочка решает сказать вам, что их не существует, или, лучше сказать, они приходят с приложением, не имеют цели и вызывают ошибки при использовании apt update && upgrade.

    Поэтому я использую root для удаления вещей, которые пользователь не может удалить, и для переключения на root и user когда-либо так часто клюет мою голову

    -2
    ответ дан 20 August 2021 в 15:25

    Другие вопросы по тегам:

    Похожие вопросы: