Какой подход лучше?
Для настольных компьютеров кажется, что sudo лучше, поскольку:
А как насчет управления серверами?
На сервере обычно у вас уже есть учетная запись root, и вы, вероятно, часто будете выполнять административную работу. Таким образом, кажется, что преимуществ sudo больше нет.
Более того, su легко настроить в командной строке в большинстве дистрибутивов, просто добавьте пользователя в группу wheel. (Вы даже можете пройти -G wheel
когда useradd
ing.) Таким образом, настройку 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.
Марионетка также может быть связана с Авгий для управления вашим файлом sudoers.
Вы, кажется, усложняете себе жизнь (когда дело доходит до управления / etc / sudoers). Простой
echo '%wheel ALL=(ALL) ALL' >> /etc/sudoers
хватит. Все, что делает visudo, - это блокирует файл от одновременного редактирования и гарантирует, что файл по-прежнему правильно анализируется.