Вопрос: Что не так, всегда с корнем?


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

У меня есть VPS, и это мое первое крупное Linux-предприятие. Я единственный человек, у которого есть доступ к нему. Мой вопрос заключается в том, что не так просто с регистрацией в качестве пользователя root, а не с помощью учетной записи и предоставления доступа к sudo? Если sudoer может делать все, что может сделать root, то в чем разница? Если хакер может взломать мой пароль на мою стандартную учетную запись без учетной записи root, то он также может выполнять команды sudo, так как хакер взламывает мою учетную запись root больше или меньше?


80
2017-08-24 14:23


Источник


Я также прокомментирую, что если вы не знакомы с «Unix Way», это не глупый вопрос. Вы должны получить бонус за размышление, чтобы задать вопрос в первую очередь как новый администратор Linux. - Bart Silverstrim
И я хотел бы прокомментировать некоторые ответы. В частности, те, которые говорят «вы можете испортить материал, являющийся корнем». Я не думаю, что в этом смысл ... «rm -rf /» делает то же самое, что и «sudo rm -rf /». Дело в том, что такие вещи, как «sudo rm», не работают, но «sudo startMyApp on low port» работает. - Zlatko
что случилось с тем, что никогда не было? - ostendali


Ответы:


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

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

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

EDIT: Существует также проблема, когда root является наиболее известным, таким образом, легкой целью для скриптов и хаков. Системы, которые отключают учетную запись и вместо этого вынуждают пользователей использовать sudo, означает, что любая попытка взломать root из ssh или локального эксплойта в учетную запись ударяет головой о стену. Им придется угадать / взломать пароль а также имя пользователя. Это безопасность через неясность до некоторой степени, но трудно утверждать, что она не препятствует большинству атак сценариев kiddie.


70
2017-08-24 14:30



+1 - Использование «sudo» делает исполняемые программы как root, открытые действия. Дело не в том, чтобы «остановить хакеров», а в том, чтобы заставить вас работать как непривилегированный пользователь и сделать вызов привилегий root привилегированным, открытым действием. - Evan Anderson
Я начинаю задаваться вопросом, действительно ли Эван - ИИ. - Bart Silverstrim
Судо также добавляет контрольный журнал. Как кто, что и когда регистрируется при запуске как sudo. Какой файл журнала может отличаться от дистрибутива, но дистрибутивы RedHat имеют тенденцию использовать / var / log / secure, а Ubuntu использует /var/log/auth.log... Я не уверен, что это верно для всех дистрибутивов на базе Debian. - 3dinfluence
+1 - речь идет не только о правах создавать вещи или делать вещи, это также о правах на уничтожение. Вход в систему как корень (или эквивалент на любой другой ОС, если на то пошло), похож на прогулку с ружьем с безопасностью. Возможно, вы никогда не намеренно касались этого триггера, но можете ли вы доверять себе все это? - Maximus Minimus
mh: / me надевает свою ковбойскую шляпу, снимает с себя безопасность на своем пистолете, открывает пиво, бормочет в малом ропоте что-то про анютины глазки, а затем входит в систему как корень. - Kyle Brandt♦


Если вы не позволите идиотом войти на ваш сервер с правами root, то не всегда запускайте его как root. Если вы не можете с сердцем сказать, что вы никогда был идиотом. Нет, правда? Ты уверен? :)

Преимущество: уменьшает вероятность того, что вы будете root а также идиот одновременно.


29
2017-08-24 14:41



+1 - «Пособие: уменьшает вероятность того, что вы будете корнем и идиотом одновременно». Мне это очень нравится. - Evan Anderson
+1 для философии Скотта Адамса, что все - идиот. :) Да, это значит, вы и я тоже. - Ernie
Абсолютно - это один из моих ключевых вопросов в собеседовании - когда вы в последний раз напортачили? У всех есть, вам нужно только прочитать потоки здесь о «самом интересном sysadmin fubar» или что-то еще. Если кто-то не признает, что по крайней мере один раз в жизни совершил настоящую немую ошибку, возможно, есть несколько причин, по которым вы не хотите работать с ними. - Tom Newton


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


9
2017-08-24 14:31





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


9
2017-08-24 14:38



Это называется «корневая гниль». - kmarsh
Мне нравится этот термин, «корневая гниль». Действительно, работа под управлением root все время может превратить машины * nix в причудливые Windows 95-подобные машины без видимости многопользовательской безопасности. (Я помню машину SCO, много лет назад, когда каждый пользователь в общем учетном приложении работал под управлением root, потому что «это заставило проблему разрешения уйти».> Sigh <) - Evan Anderson
Я помню, как это объяснялось - у них был инструмент для почтового списка, запущенный как root, а также sendmail. Мой ответ был: «Проблемы с разрешениями пошли и для хакеров». - duffbeer703


Есть несколько ключевых участников, которые не входят в систему с правами root: 1) Пароль root никогда не отправляется по сети во время входа в систему 2) Невозможно сказать, кто что-то сделал, если несколько пользователей вошли в одну учетную запись (корень или другой). 3) Случайно делая что-то "глупое"


7
2017-08-24 14:31





Это больше для защиты от вас, так что у вас есть второй шанс просмотреть команды с более высокими привилегиями, которые вы пытаетесь запустить, аналогичные UAC в Windows. Очень легко случайно сделать что-то вроде rm -rf / при входе в систему как root.

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


3
2017-08-24 14:30



Прослеживаемость имеет решающее значение в системах, где более одного человека работает как администратор. Не просто желательно, чтобы это было предусмотрено нормативными режимами. - APC
Я сделал это в пятницу. вместо удаления «/ dump / folder /» я удалил папку /. Одна вонючая обратная косая черта напомнила мне, почему мы не входим в систему как root. - oneodd1


Разница в основном:
что вы не можете сделать что-то плохое случайно.
что «злой» код не может взять на себя систему.
Обратите внимание: код зла не обязательно означает, что кто-то уже имеет доступ к системе.


2
2017-08-24 14:30



Я заметил, что в наши дни злой код обычно означает спам-боты, которые могут запускаться как любой пользователь. - Ernie
Если вы думаете о вирусе (пытаетесь что-то уничтожить) или руткитете, для вредоносного ПО это намного сложнее, если вы не root. - StampedeXV


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

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

Подумайте о коде, который вы используете, не задумываясь. Например, порт Linux для Adobe Flash, который является кучей кучи кормы, который только стал использоваться в относительно недавнем прошлом. Насколько безопасным вы считаете этот код? Вы хотите, чтобы это могло полностью контролировать вашу систему?


2
2017-08-24 14:37





Моим советом было бы попытаться использовать root все время какое-то время; вы скоро узнаете, почему вы не должны :)


2
2017-08-24 15:36





Это может предотвратить атаки грубой силы SSH. Каждый unix имеет учетную запись «root». Однако извне неясно, каким будет ваше имя пользователя sudo. Следовательно, если кто-то хочет попытаться перебрать свою силу, они знают, что есть учетная запись root и, вероятно, попробуют ее. Однако они не знают, с чего начать, если вы используете sudo.


2
2017-08-24 15:40