Я часто слышал, что лучше использовать su для получения root-прав, а не входить напрямую как пользователь root (и, конечно, люди также говорят, что еще лучше использовать sudo). Я никогда не понимал, почему одно лучше, чем другие, понимание?
33
Ответы:
Вывод только
su
илиsudo
когда требуется.Большинство повседневных задач не требуют корневой оболочки. Поэтому рекомендуется использовать непривилегированную оболочку в качестве поведения по умолчанию, а затем повышаться до уровня root, когда вам нужно выполнить специальные задачи.
Тем самым вы уменьшаете возможности для опасных ошибок (плохие сценарии, неуместные подстановочные знаки и т. Д.) И уязвимостей от любых приложений, которые вы используете. Особенно те, которые подключаются к Интернету - см. Старую поговорку «Не IRC как root» .
sudo
часто рекомендуется, потому что это позволяет вам детализировать и проверять использование таких привилегий.Соблюдая эти правила, вы также можете отключить удаленный вход в систему. Это увеличивает полосу входа для любого потенциального злоумышленника, поскольку он должен был бы скомпрометировать как обычную учетную запись пользователя, которая была членом группы «wheel» и в идеале авторизованную только открытыми ключами SSH, так и саму корневую учетную запись.
источник
sudo
это и лучше, ноsu
также позволяет вам использовать-m
флаг, чтобы переменные среды оставались неизменными, пока вы находитесь в корневом терминале. Ничто не побуждает меня больше помешаться, чемsu
немного подручиться, только сделать что-то с~
именем каталога и заставить его не работать.Вы должны отключить доступ с правами root с удаленного компьютера, чтобы злоумышленник не смог скомпрометировать root, не скомпрометировав сначала пользователя, а затем не перейдя к root. Мы включаем root-доступ только на консоли.
Плюс это создает ответственность. :)
источник
Основная причина заключается в создании контрольного журнала. Если вам нужно войти в систему как обычный пользователь, а затем su, можно отследить, кто отвечает за данные действия.
источник
sudo также автоматически регистрирует каждую команду в системном журнале, и вы можете определить команды, которые может использовать каждый пользователь.
источник
sudo vim foo.txt
затем перетаскивание в оболочку изнутри vim даст вам корневую оболочку без обычной регистрации в sudo.sudo -i
получить интерактивную сессию ...Еще одна веская причина: при переходе с правами суперпользователя с помощью sudo пользователь проходит аутентификацию с использованием своих собственных учетных данных, что означает, что ему не обязательно указывать пароль root, что упрощает блокировку, когда кто-то покидает вашу организацию.
источник
Если вы хотите создать контрольный журнал и не хотите стать жертвой проблем «sudo su -» или «sudo vim foo.txt», упомянутых здесь, вы можете использовать «sudosh». Раздайте root-доступ через sudo, но сделайте единственную допустимую команду для запуска sudosh.
sudosh - это оболочка журналирования, и вы можете воспроизвести весь сеанс терминала позднее, показывая точно, что пользователь увидел на своем терминале.
источник
Вы должны практиковать безопасность глубоко.
Запретить удаленный root-доступ (или хотя бы root-доступ через пароли). (если вы разрешаете root-доступ через ключи, тщательно управляйте этими ключами или, что еще лучше, используйте что-то вроде kerberos, которое позволяет централизованно отзывать ключи).
Я бы отключил su и использовал sudo. Таким образом, пользователи используют ключи (желательно зашифрованные) для доступа к системе, затем они используют свой пароль только для повышения привилегий. Вы можете ограничить доступ к каким программам людям с помощью sudo, но в основном вы ограничиваете доступ только тем, кто знает пароль root.
В идеальном мире вы должны иметь возможность публиковать свои корневые пароли в Интернете, и это не имеет значения, даже если вы предоставили людям доступ к вашему компьютеру (но не поместили их в файл / etc / sudoers). Конечно, вы не должны публиковать пароль root, но идея в том, что вы защищаете свои системы с помощью концентрических уровней защиты.
источник
Идея состоит в том, чтобы отключить root-логин и, следовательно, не иметь учетной записи администратора по умолчанию. Таким образом, злоумышленник должен угадать имя пользователя и пароль (а не только пароль).
источник
Если вы используете root на регулярной основе, то ваши права доступа могут быть неправильными, или вам может потребоваться предоставить права sudo или права новой группы для r / w / x файлов или каталогов.
Хорошие схемы разрешений - это то, что даже давние пользователи Linux ошибаются или не осознают того, что имеют.
Даже не заводите меня на то, что сделал Ubuntu!
источник
Он не позволяет запустить rm -r -f / Я только что выполнил это 2 дня назад (как непривилегированный пользователь, я хотел запустить rm -r -f *)
источник