Назад | Перейти на главную страницу

Каковы фактические преимущества назначения привилегий sudo пользователю вместо использования root?

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

Однако, если вновь созданный пользователь может выполнять те же функции, что и пользователь root, какова реальная выгода от этого?

Есть несколько преимуществ использования sudo из-за выдачи пароля root. В произвольном порядке:

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

  • Вы не отдаете ключи от королевства
    sudo позволяет указать ограниченный список команд, которые могут запускать пользователи, поэтому, если вы решите, что Алисе нужна только возможность останавливать и запускать Apache, а Бобу нужны полные права root, вы можете настроить их соответствующим образом.

  • Вы можете управлять авторизацией централизованно sudo поддерживает конфигурацию LDAP, что означает, что каждая система в вашей компании может смотреть на центральный сервер LDAP, чтобы определить, кто и что может делать.
    Вам нужно авторизовать (или деавторизовать) кого-то? Измените конфигурацию sudoers в LDAP, и все ваши системы будут обновлены сразу.

  • Есть контрольный журнал
    За исключением пользователей, которым разрешено делать sudo su - , sudo sh , или что-то подобное, sudo создаст контрольный журнал того, какой пользователь какие команды выполнял.
    (Он также выдаст список людей, которые предоставили себе незарегистрированную корневую оболочку, так что вы можете указать на них пальцем и неодобрительно шипеть.)

  • sudo подходит не только для root Все концентрируются на sudo как способ делать вещи как всperuser, но это не все это хорошо для.
    Скажем, Алиса отвечает за конкретную сборку программного обеспечения, но Боб также должен иметь возможность запускать сценарий сборки. Вы можете предоставить Бобу запись в sudoers, которая позволит ему запускать сценарий сборки от имени пользователя Алисы. (Да, конечно, есть гораздо лучшие способы справиться с этим конкретным случаем, но принцип Let user A run a program as user B может быть полезно ...).
    Вы также получаете все те же преимущества аудита, о которых я упоминал выше, когда вы делаете это ...

Основное отличие состоит в том, что пользователи проходят аутентификацию sudo с помощью их собственный пароль, тогда как с su или прямой вход root, используется пароль root.

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

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

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

Да, действительно - с точки зрения управления и ведения журнала sudo намного лучше.

Например, если вы su, единственное событие, зафиксированное в журналах, - это вы. Все, что после этого, идет от имени root. И если вы когда-либо просматривали журналы в Unix / Linux, вы знаете, что root выполняет множество задач.

Sudo, с другой стороны, регистрирует почти все как исходный пользователь.

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