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

следует использовать sudo или просто su root в управлении сервером?

Какой подход лучше?

Для настольных компьютеров кажется, что sudo лучше, поскольку:

А как насчет управления серверами?

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

Более того, su легко настроить в командной строке в большинстве дистрибутивов, просто добавьте пользователя в группу wheel. (Вы даже можете пройти -G wheel когда useradding.) Таким образом, настройку su можно легко автоматизировать в сценарии оболочки.

Но для sudo? Вам нужно сначала добавить пользователя, а затем запустить visudo интерактивно. Это плохо, поскольку вы не можете автоматизировать это в сценарии оболочки.

(Ну, вы можете. Например,

echo '%wheel    ALL=(ALL)   ALL' >> /tmp/sudoers.tmp
cp /etc/sudoers /etc/sudoers.old
visudo -c -f /tmp/sudoers.tmp &&  mv /tmp/sudoers.tmp /etc/sudoers

Но, по крайней мере, это не так просто.)

Так каково ваше мнение? Что вы предпочтете для серверной среды: sudo или su root?

Учетная запись root обязательно необходима на серверах, но я предпочитаю предоставлять права sudo, особенно когда на машине несколько пользователей, и это по нескольким причинам:

  • Я использую sudo не только для предоставления ВСЕХ прав для ВСЕХ команд, но также для предоставления определенных прав как конкретному пользователю для определенных команд.
  • Назначая пользователей функциональным группам, я могу управлять их правами с этими группами в sudoers вместо того, чтобы управлять пользователями по отдельности.
  • Доступ к sudo по умолчанию регистрируется в auth.log, включая то, какие пользователи использовали sudo и в какое время.
  • sudo позволяет управлять конфигурацией нескольких машин одним файлом.
  • каждый пользователь сохраняет свой собственный пароль, поэтому нет необходимости менять пароль root, когда пользователь уходит.

Что касается управления им с помощью скриптов, новые версии sudo поддерживают включения, но я предпочитаю использовать марионетку и устанавливать классы, которые объединяют содержимое sudoers.

Марионетка также может быть связана с Авгий для управления вашим файлом sudoers.

Вы, кажется, усложняете себе жизнь (когда дело доходит до управления / etc / sudoers). Простой

echo '%wheel    ALL=(ALL)   ALL' >> /etc/sudoers

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