Итак, я прочитал о различиях между использованием su
и sudo
, и все, похоже, согласны с тем, что этот sudo
подход более безопасен, чем предоставление доступа к самой учетной записи root. Они говорят, что с учетной записью root вы можете взломать всю систему с помощью одной команды. Это я понимаю НО первоначальный пользователь, созданный в системе, также имеет доступ ко всем командам, использующим sudo. Это я могу узнать, запустив su -l
. Если это так, то я могу просто sudo <game-ending command>
убить свою систему. Так как же этот подход лучше или безопаснее, чем прямой доступ к учетной записи суперпользователя? Я могу запустить все те же команды ...
Это потому, что, используя sudo
в командной строке, я явно говорю компьютеру, я думаю, что знаю, что делаю? Они думают, что люди забудут, что находятся под учетной записью суперпользователя, если они прямо не скажут это?
Люди также утверждают, что, если система будет взломана и введена кем-то посторонним, наличие учетной записи root позволит им делать ужасные вещи с моей системой. Но мне кажется, что если они уже имеют доступ к моей учетной записи и знают мой пароль, они могут совершать те же самые ужасные поступки, используя sudo и вводя мой пароль, поскольку им даже не нужно знать пароль суперпользователя. Что я не получаю здесь?
источник
Ответы:
Лично я не обязательно считаю это более безопасным, и большинство преимуществ (sudo) в многопользовательской системе. В однопользовательской системе это, вероятно, стирка.
Преимущества (в произвольном порядке):
sudo -i
это, вероятно, лучший способ изолировать переменные среды root от вашего пользователя. Это приходит время от времени, но умеренно эзотерично. Смотрите https://help.ubuntu.com/community/RootSudo#Special_notes_on_sudo_and_shellsЕсть, вероятно, больше преимуществ, но это основные из них, ИМХО.
Смотрите также - https://help.ubuntu.com/community/RootSudo
Чтобы попытаться ответить на некоторые другие ваши мысли:
Так что, хотя у вас есть проблемы или недостатки с sudo, su имеет точно такие же уязвимости, и su не превосходит sudo в этих аспектах, IMHO
источник
Представьте, что у вас есть 20 минут, чтобы сделать что-то сложное. Вы немного похмелились, и вам нужно спешить. «Давайте использовать су», - говорите вы. «Это сэкономит время» - таково ваше мнение.
Случайно набираешь
вместо того
Ваша система теперь работает само по себе, и у вас есть 10 минут до истечения срока.
Если вы явно выберете, когда вам нужен root, вы можете минимизировать вероятность этого. Root может не понадобиться,
rm -r ./*
так зачем его использовать? Зачем рисковать?Вот что значит «безопасность». Минимизация риска того, что пользователи (все пользователи, а не только новички) допустят фатальную ошибку.
Конечно, это крайний пример, который нельзя допустить в производственной среде (я гарантирую, что это произошло в среде prod).
В плане безопасности есть кое-что, для чего sudo тоже лучше. Как говорит @Panther - регистрация, ограничения, пароль root - SPOF и т. Д.)
источник
chown -R nobody:nobody /
или дажеchown -R nobody ../
как root.chmod
Конечно, в рекурсивном режиме есть похожие проблемы. Но самое лучшее, что вы делаете, это то, что вы должны быть root, только когда вам это нужно; чем меньше у вас прав доступа, тем лучше для обычного использования.sudo
? Вы пишетеsudo rm -rf /*
вместо того, чтобыsudo rm -rf ./*
и бум снова.sudo rm -rf ./*
. Предположительно, у вас есть доступ на запись к материалам в текущем каталоге, поэтому вам не нужен sudo для этой команды. Таким образом , в typoed команды заканчивает темrm -rf /*
, что дает длинную строку «Отказано в доступе» сообщения, давая вам знать , что вам нужно ,ctrl-c
прежде чем он попадает в материал вы можете удалить, вместо того , чтобы просто удалить все в/bin
,/boot
,/dev
, и половина/etc
перед тем Вы даже понимаете, что что-то не так.Я хочу добавить немного исторической перспективы к другим ответам. К сожалению, у меня нет готовых источников, кроме моих собственных воспоминаний об обсуждениях Usenet и журнальных статьях.
Некоторое время назад, в 1990-х годах, дистрибутивы облегчали установку Linux на собственном оборудовании, даже не обладая большими компьютерными знаниями. Таким образом, Linux начал привлекать все больше и больше людей, которые на удивление ранее не проходили обучение в качестве системных администраторов. немного UN * X диалект. Вместо этого многие привыкли к (однопользовательским) системам, таким как Windows 95/98. И они узнали, что большинство задач системного администрирования Linux заставляют работать под этой странной учетной записью «root».
Таким образом, некоторые пользователи просто вошли в систему как root и использовали эту учетную запись для всей своей повседневной работы. Почему они должны вводить
su
и в корневой пароль снова и снова или Войти в новый телетайп только для некоторых команд администратора? Но использование root для всего, конечно, не очень хорошая идея, так как вы можете нанести гораздо больший вред своей системе, если будете неумелой командой в неправильном месте. Это даже привело к тому, что некоторые дистрибутивы (это был SuSE?) Изменили фон рабочего стола для пользователя root, чтобы вывести большое предупреждение о том, что вы должны использовать эту учетную запись только для задач администратора.Таким образом, у Ubuntu
sudo
есть несколько преимуществ (в дополнение к уже перечисленным Panther ).sudo
кэширует ваши учетные данные, поэтому для нескольких последовательных административных команд вам нужно будет ввести пароль только один раз (в отличие отsu
). Это уменьшает желание просто открыть оболочку или новый терминал с привилегиями root .¹ А для тех, кто не решился сделать это самостоятельно, были организованы вечеринки.
² Но вы можете использовать команду, подобную
sudo -i
или,sudo su - root
чтобы получить корневую оболочку после того, как вы вошли в систему как обычный пользователь.«Но вы, конечно, знаете, что не следует просто копировать и вставлять команды из Интернета , верно?
источник
sudo su -
илиsudo su - root
? Потому что я видел подобные утверждения, например, что у MacOS X нет root, но это совершенно неверно, когда нужно только выполнить первую команду ...root
и пароль в приглашении для входа в систему или в диалоге входа в систему X и начать сеанс от имени пользователя root. Но вы можете использовать одну из ваших команд (я предпочитаю, такsudo -i
как она короче и я ленива), чтобы получить корневую оболочку.В течение десятилетий можно было отключить root-вход через ssh. Способ Ubuntu отключить корневую учетную запись и заставить людей sudo все - не более, чем трюк. Просто "sudo -s" и у вас есть корневая оболочка. Отключите root-вход через ssh и оставьте его там.
источник
В зависимости от конфигурации,
sudo <game ending command>
не обязательно будет работать. Конечно, если вsudoers
конфигурации указано «user ALL = (ALL) ALL»,sudo
дополнительная защита не будет предлагаться. Однако вы можете указать список привилегированных команд, которые вам нужно часто запускать, например устанавливать новые пакеты, и опускать такие опасные команды, какrm
.Таким образом, вы можете запускать все команды, если вы войдете в систему как
root
, но так как вам это понадобится только изредка, риск выполнения<game ending command>
будет существенно уменьшен.источник
То, что sudo позволяет вам разрешать только определенные команды, не единственное преимущество sudo перед su.
В большинстве магазинов это даже не самое главное преимущество.
С помощью sudo вы знаете, кто выполнял определенную команду.
Теперь, может быть, это не имеет значения для вас. Например, вы можете быть единственным пользователем вашего компьютера. Если так, то sudo возможно не лучше чем su.
Но множество хостов имеют более одного администратора.
Тогда sudo становится очень полезным, потому что если кто-то поступает неправильно, sudo сообщает, кто это сделал.
Это позволяет понять, почему произошли ошибки, и научить людей предотвращать повторение ошибок или, если необходимо, удалять инструменты у кого-то.
В качестве бонуса, когда люди знают, что их действия записаны, они часто немного осторожнее.
Судо не идеален.
Если два человека делают «sudo sh» одновременно, тогда может быть трудно приписать команды одной или другой.
И злонамеренный администратор всегда может удалить или отредактировать журналы - хотя делать это аккуратно не всегда так просто, как думают люди, особенно если у вас централизованное ведение журналов.
Судо не обязательно останавливает глупое или злонамеренное действие по всем причинам, указанным в исходном вопросе.
Но это дает вам гораздо больше шансов предотвратить повторение.
источник
sudo
все разрешено. Конечно, вы можете настроить его так, чтобы ограничить количество команд, разрешенных пользователю, но я не думаю, что это так в вопросе, который был задан.