У меня такое чувство, что это глупый вопрос, но я задумывался об этом некоторое время.
У меня есть VPS, и это мое первое большое предприятие с Linux. Я единственный человек, у которого есть к нему доступ. Мой вопрос: что плохого в том, чтобы просто войти в систему как root, а не создать учетную запись и предоставить им доступ sudo? Если sudoer может делать все, что может root, тогда в чем разница? Если хакер мог взломать мой пароль к моей стандартной учетной записи без полномочий root, он также мог бы выполнять команды sudo, так какое же значение имеет хакер, взломавший мою учетную запись root?
Если вы вошли в систему как root, вы можете легко стереть каталоги или сделать что-то, что в ретроспективе действительно глупо в системе, щелчком пальца, в то время как как пользователю вам обычно приходится вкладывать несколько дополнительных мысленных циклов в то, что вы печатаете перед тем, как сделать что-то опасное.
Также любая программа, которую вы запускаете как root с привилегиями root, означает, что если кто-то или что-то заставит вас запустить / скомпилировать / просмотреть веб-сайт, который опасен и хочет повредить вашу систему, например, троян или другое вредоносное ПО, у него будет полный доступ к вашему система и может делать то, что хочет, включая доступ к портам TCP ниже 1024 (например, чтобы превратить вашу систему в ремейлер без вашего ведома).
По сути, вы как бы напрашиваетесь на проблемы, которые может предотвратить вход в систему. Я знаю многих людей, которые в конце концов были рады, что у них появилась эта подстраховка в момент небрежности.
РЕДАКТИРОВАТЬ: Существует также проблема того, что root является наиболее известной и, следовательно, легкой целью для скриптов и взломов. Системы, которые отключают учетную запись и вместо этого заставляют пользователей использовать sudo, означают, что любая попытка взломать root с ssh или локальный эксплойт для учетной записи бьется головой об стену. Им придется угадывать / взламывать пароль и имя пользователя. В некоторой степени это безопасность через неизвестность, но трудно утверждать, что она не предотвращает большинство атак скриптовых детей.
Если вы не позволяете идиоту входить на ваш сервер как root, то не всегда запускайте его как root. Если вы не можете передать сердце сказать, что вы никогда был идиотом. Нет, правда? Вы уверены? :)
Преимущество: снижает вероятность того, что вы root и идиот одновременно.
Основная причина - ошибки. Если вы всегда являетесь пользователем root, простая опечатка может действительно испортить систему. Если вы входите в систему только как root или используете sudo для того, что требует этого, вы минимизируете риск совершения опасной ошибки.
Когда вы root, вам лень с разрешениями, так как у вас есть доступ ко всему постоянно, вам все равно, когда это 777 или 644 или что-то еще. Поэтому, если вы когда-нибудь позволите кому-либо подключиться к своей системе, если вы не хотите иметь доступ ко всему, это внезапно станет настоящей трудностью - сделать машину безопасной для использования другими людьми.
За отказом от входа в систему как root есть несколько ключевых принципов: 1) Пароль root никогда не отправляется по сети во время входа в систему 2) Невозможно определить, кто что-то сделал, если несколько пользователей вошли в систему под одной и той же учетной записью (root или другой). 3) Случайно сделал что-то "глупое"
Это больше для защиты от вас самих, чтобы у вас был второй шанс просмотреть команды с более высокими привилегиями, которые вы пытаетесь запустить, аналогично UAC в Windows. Довольно легко случайно сделать что-то вроде rm -rf /
при входе в систему как root.
Кроме того, у вас есть возможность отслеживания. Это не большая проблема в вашей ситуации, когда вы единственный (теоретически) выдаете команды, но возможность регистрации и отслеживания личности является ключевым компонентом многих форм анализа.
Разница в основном:
что ты не можешь ничего плохого сделать случайно.
этот «злой» код не может овладеть системой.
Примечание: злой код не обязательно означает, что кто-либо уже имеет доступ к системе.
Вы всегда должны использовать учетные записи с минимально возможным уровнем привилегий. Постоянный запуск с правами root поощряет вредные привычки и лень, которые сделают жизнь неприятной, когда вы работаете с несколькими пользователями или открываете что-то в общедоступной / полуобщественной сети.
Также имейте в виду, что взлом пароля - это только один сценарий компрометации, и это тоже не самый распространенный сценарий. Вы с большей вероятностью станете жертвой уязвимости браузера или какого-либо демона, работающего в вашей системе.
Подумайте о коде, который вы используете, не задумываясь. Например, порт Adobe Flash для Linux, представляющий собой дымящуюся кучу мусора, который стал использоваться только в относительно недавнем прошлом. Как вы думаете, насколько безопасен этот код? Вы хотите, чтобы вы могли полностью контролировать вашу систему?
Это может предотвратить атаки методом перебора SSH. У каждого unix есть учетная запись root. Однако со стороны неясно, каким будет ваше имя пользователя sudo. Следовательно, если кто-то хочет попытаться проникнуть в систему грубой силой, он знает, что есть учетная запись root, и, вероятно, попробует ее. Однако они не знают, с чего начать, если вы используете sudo.
Я бы посоветовал какое-то время все время использовать root; скоро ты поймешь, почему не стоит :)
Даже если я не верю в «безопасность через неясность», несомненно, есть преимущество в использовании пользовательского входа в систему вместо всегда существующего входа в систему root. Таким образом, вы также можете настроить SSH, чтобы предотвратить вход в систему с правами root.
Как говорили другие, root может делать все без какого-либо подтверждения. Таким образом, использование непривилегированного пользователя может предотвратить глупые ошибки и опечатки.
Еще один аргумент в пользу нескольких учетных записей пользователей - запуск разных программ под разными пользователями. При этом, если брешь в безопасности используется в одном приложении, злоумышленник может получить доступ только к файлам и ресурсам, доступным для его запущенного пользователя.
И последний момент, чтобы не использовать root: потребление ресурсов. У Root нет ограничений на то, сколько памяти, времени обработки, файловых обработчиков или дискового пространства он может использовать. Во многих файловых системах есть блоки данных, которые зарезервированы только для root. Так что обычный пользователь никогда не сможет использовать их для заполнения вашего диска. Команда ulimit также может использоваться для ограничения памяти и количества обработчиков файлов, которые может использовать пользователь. Но если вы являетесь пользователем root (или приложение, работающее как root), ничто не мешает вам изменить это ограничение.
Да, я согласен с вами, и я думаю, что это вопрос защиты от человеческих ошибок, а иногда и от вредоносных программ. Плохая вещь, которую я никогда не видел, - это использование root в качестве учетной записи gnome по умолчанию.
Я думаю, что большинство пользователей, которые это делают, - это пользователи Windows, недавно перешедшие на Linux или Unix. Попробуйте скопировать использование привилегии администратора в root.
Нет ничего плохого в том, чтобы войти в систему как root. Это помогает развить мышечную память, позволяющую набирать только безопасные команды, и способствует точности мысли при выполнении действий с большими последствиями. Я настоятельно рекомендую работать с правами root, чтобы лучше разбираться в системном администрировании.
ты также можешь делать такие классные вещи, как ping -i 0.2 -c 1000 example.com