Что плохого в том, чтобы всегда быть пользователем root?


83

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

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


28
Я бы также прокомментировал, что если вы не знакомы с «Unix Way», это не глупый вопрос. Вы должны получить бонус за размышление, прежде всего, чтобы задать вопрос в качестве нового администратора Linux.
Барт Сильверстрим

И я хотел бы прокомментировать некоторые из ответов. Особенно те, которые говорят "вы можете испортить вещи, будучи корнем". Я не думаю, что в этом суть ... "rm -rf /" делает то же самое, что и "sudo rm -rf /". Дело в том, что такие вещи, как "sudo rm", не работают, но "sudo startMyApp на низком порте" работает.
Златко

что плохого в том, чтобы никогда не быть?
Остендали

Ответы:


70

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

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

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

РЕДАКТИРОВАТЬ: Существует также проблема root является самой известной, а следовательно, легкой целью для сценариев и хаков. Системы, которые отключают учетную запись и вместо этого вынуждают пользователей использовать sudo, означают, что любая попытка взломать root от ssh или локальная эксплойт к учетной записи бьют их головой об стену. Им придется угадать / взломать пароль и имя пользователя. В некоторой степени это безопасность через безвестность, но трудно утверждать, что это не мешает большинству атак сценаристов.


25
+1 - Использование «sudo» делает выполнение программ от имени root явным действием. Дело не в том, чтобы «остановить хакеров», а в том, чтобы заставить вас привыкнуть работать как непривилегированный пользователь и сделать вызов корневых привилегий намеренным, явным действием.
Эван Андерсон

2
Я начинаю задаваться вопросом, действительно ли Эван - ИИ.
Барт Сильверстрим

11
Судо также добавляет контрольный журнал. Как кто, что и когда вошел, когда запускается как sudo. Какой файл журнала может отличаться в зависимости от дистрибутива, но дистрибутивы RedHat обычно используют / var / log / secure, а Ubuntu использует /var/log/auth.log... Я не уверен, верно ли это для всех дистрибутивов на основе Debian.
3dinfluence

3
+1 - речь идет не только о правах создавать вещи или делать вещи, но и о правах разрушать. Вход в систему как root (или эквивалент в любой другой ОС в этом отношении) подобен хождению с оружием в выключенном состоянии. Возможно, вы никогда не нажмете на спусковой крючок намеренно, но будете ли вы доверять себе сделать это все же?
Максимус Минимус

3
mh: / me надевает свою ковбойскую шляпу, щелкает предохранителем на своем пистолете, открывает пиво, бормочет что-то тихо о анютиных глазках, а затем входит в систему как root.
Кайл Брандт

29

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

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


6
+1 - «Преимущество: уменьшает вероятность того, что вы являетесь корнем и идиотом одновременно». Я очень люблю это.
Эван Андерсон

+1 за философию Скотта Адамса, что каждый идиот. :) Да, это означает, что вы и я тоже.
Эрни

Безусловно - это один из моих ключевых вопросов на собеседованиях - когда вы в последний раз облажались? У всех есть, вам нужно только прочитать темы здесь о "самом интересном сисадмине фубаре" или о чем-то еще. Если кто-то не признается в том, что хотя бы раз в жизни допустил настоящую глупую ошибку, возможно, есть несколько причин, по которым вы не хотите с ним работать.
Том Ньютон

9

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


9

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


5
Это называется "корневая гниль".
kmarsh

1
Мне нравится этот термин "корневая гниль". Действительно, постоянная работа с правами root может превратить машины * nix в причудливые машины, подобные Windows 95, без единой защиты многопользовательской безопасности. (Я помню машину SCO, несколько лет назад, когда каждый пользователь в приложении общего учета работал от имени пользователя root, потому что «это позволило устранить проблемы с разрешениями».> Вздох <)
Эван Андерсон,

Я помню, как получил такое объяснение - у них был инструмент почтовой рассылки, работающий от имени пользователя root, наряду с sendmail. Мой ответ был «Проблемы с разрешением ушли и хакерам».
duffbeer703

7

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


3

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

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


Отслеживание имеет решающее значение в системах, где более одного человека работают системным администратором. Это не просто желательно, это предписано регулирующими режимами.
APC

Я сделал это в пятницу. вместо удаления "/ dump / folder /" я удалил папку /. Одна вонючая обратная косая черта напомнила мне, почему мы не авторизованы как root.
oneodd1

2

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


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

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

2

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

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

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


2

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



1

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


1

Даже если я не верю в «безопасность по неизвестности», безусловно, есть преимущество в использовании нестандартного имени входа вместо постоянно существующего корневого имени входа. Таким образом, вы также можете настроить SSH для предотвращения входа в систему root.

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

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

И последнее, что не нужно использовать root: потребление ресурсов. Root не имеет ограничений на то, сколько памяти, времени обработки, файловых обработчиков или дискового пространства он может использовать. На многих файловых системах есть блоки данных, которые зарезервированы только для root. Поэтому обычный пользователь никогда не сможет использовать их для заполнения вашего диска. Команда ulimit также может использоваться для ограничения памяти и номера обработчика файлов, которые может использовать пользователь. Но если вы являетесь пользователем root (или приложение работает от имени root), ничто не мешает вам изменить это ограничение.


0

Да, я согласен с вами и считаю, что это вопрос защиты от ошибок человека, а иногда и от вредоносных программ. Плохая вещь, которую я никогда не видел, состоит в том, чтобы использовать root в качестве учетной записи gnome по умолчанию.
Я думаю, что большинство пользователей, которые делают это - пользователи Windows, недавно перешли на Linux или Unix. Попробуйте скопировать использование привилегий Администратора в root.


0

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

Вы также можете делать классные вещи, такие как ping -i 0.2 -c 1000 example.com

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.