Я только что установил sudo на свою машину (Debian Wheezy).
Когда я редактировал файл sudoers с помощью visudo, я заметил эту строку:
%sudo ALL=(ALL:ALL) ALL
В нескольких учебных пособиях и блогах (хотя часто на основе Squeeze) рекомендуется следующее:
%sudo ALL=(root) ALL
Спасибо :-)
ALL=(ALL:ALL)
. Изменение этого параметра, чтобы разрешить выполнение только с правами root, может нарушить некоторые предположения, сделанные людьми, которые пишут программное обеспечение для вашей платформы. Кроме того, это личные предпочтения.sudo -g
) в дополнение к пользователю.Эффективное различие между этими двумя состоит в том, что ALL=(ALL:ALL)
позволяет члену группы sudo запускать любую команду от имени любого пользователя (sudo -u anyuser
) или любую группу (sudo -g anyuser
). ALL=(root)
формат позволяет членам группы sudo запускать любые команды от имени пользователя root.
Поскольку предоставление кому-либо доступа к пользователю root фактически позволяет им запускать любую команду, которую они хотят, нет очевидной очевидной выгоды в том, чтобы не позволять им запускать команду от имени любого пользователя или группы. Он обеспечивает дополнительный уровень абстракции для выполнения команд от имени другого пользователя.
Вот как можно запустить команду как joebob
в обоих сценариях:
ALL=(ALL:ALL)
- sudo -u joebob whoami
ALL=(ROOT)
- sudo sudo -u joebob whoami
или sudo su -c whoami joebob
Я бы предпочел ALL=(ALL:ALL)
потому что он сохраняет чистоту журналов безопасности и показывает прямое намерение человека, вызывающего sudo
команда в первой строке, которая регистрируется.