Как лучше всего добавить пользователя в группу sudoer?

Как лучше всего добавить пользователя в группу sudoer?

Пока что я нашел четыре разных способа добавить пользователя в группу sudoers, и не все методы работают во всех системах. Почему так много разных реализаций? Какая лучшая? Что является стандартом (т. е. работает в большинстве систем)?

Различные реализации:

  1. Добавление пользователя в группу «колесо».
  2. Добавление пользователя в группу «sudo».
  3. Редактирование файла /etc/sudoers
  4. Редактирование файла /etc/sudoers с помощью visudo

решение1

Существует два (основных) способа разрешить пользователю запускать команды от имени root через sudo:

  • заявляют, что «Алиса может запускать команды как root»;
  • заявить, что «Алиса — системный администратор» и что «системные администраторы могут запускать команды от имени root».

Способ объявить «Алиса — системный администратор» — сделать ее членом группы системных администраторов, но для группы системных администраторов нет стандартного имени (и нет никаких обязательств, что группа системных администраторов существует). В некоторых традиционных системах Unix есть группа с именемwheel, но часто нахождение в группе wheel является лишь предпосылкой для получения прав root, и пользователь также должен знать пароль root и run su(именно так его использует BSD, в частности). Некоторые дистрибутивы, такие как Ubuntu и Debian, включают в свою конфигурацию по умолчанию группу с именем sudoи правило «члены группы sudoмогут запускать команду как root».

Если /etc/sudoers(или файл в /etc/sudoers.d) содержит строку типа %sudo ALL=(ALL:ALL) ALL, то вы можете сделать пользователя sudoer, добавив его в sudoгруппу ( adduser alice sudo). Имя sudoне магическое, вам просто нужно сопоставить запись в /etc/sudoers.

Никогда не редактируйте /etc/sudoers(или файл в /etc/sudoers.d) напрямую: если вы сделаете синтаксическую ошибку, вы заблокируете себе доступ root. Всегда используйте visudoдля редактирования этого файла. Чтобы выбрать редактор, который visudoбудет запущен, установите VISUALпеременную окружения (или EDITOR, если VISUALона не установлена). На многопользовательской машине использование visudoимеет дополнительное преимущество, заключающееся в том, что оно заботится о блокировке в случае, если два администратора одновременно редактируют файл.

решение2

adduser username sudoУ меня работает, но я использую Debian, в котором есть sudoersфайл, который по умолчанию предоставляет всем членам sudoгруппы доступ sudo.

решение3

Я Ubuntuдобавил <somefile>в /etc/sudoers.d/строку:

<user> ALL=(ALL:ALL) ALL

Используя команду:

visudo -f /etc/sudoers.d/<somefile>

Это рекомендуется, поскольку файл остается /etc/suodersнетронутым и, таким образом, исключается конфликт (и необходимое последующее ручное разрешение) между обновлениями. Смотрите:Почему /etc/sodoers.d/

решение4

Методы 2 и 4 будут работать практически на всех Linux. Даже не пытайтесь использовать 3 на рабочей системе! Это может повредить систему. Метод 1 может работать, но не обязательно.

Почему следует использовать visudo вместо ручного редактирования /etc/sudoers?

Получив права root, я использовал visudo для исправления файла sudoers. Почему visudo? Потому что это программа, которую ВЫ ДОЛЖНЫ ИСПОЛЬЗОВАТЬ. Да, я немного зол, потому что тот, кто сломал этот сервер, должен был знать лучше. Visudo — это прекрасная маленькая программа, которая проверяет синтаксис файла sudoers перед тем, как вы его сохраните, так что если вы сделаете что-то совершенно глупое, вы узнаете об этом до того, как это станет проблемой и не позволит вам вернуться в систему как root.

http://lickthesalt.com/2009/07/06/fail-why-you-should-always-use-visudo/

Связанный контент