
В среде песочницы виртуальной машины у меня есть настройка Ubuntu Linux, которая защищена брандмауэром и недоступна извне локальной системы. Поэтому на этой виртуальной машине я хотел бы предоставить административному пользователю (которого я настроил) возможность запускать что угодно с помощью sudo и не нуждаться в пароле.
Хотя я знаю, что это небезопасно, эта виртуальная машина не включена все время и требует мой личный пароль для запуска. Так что, даже если это не "безопасно", есть ли способ получить желаемую функциональность?
решение1
NOPASSWD and PASSWD
By default, sudo requires that a user authenticate him or herself
before running a command. This behavior can be modified via the
NOPASSWD tag. Like a Runas_Spec, the NOPASSWD tag sets a default for
the commands that follow it in the Cmnd_Spec_List. Conversely, the
PASSWD tag can be used to reverse things. For example:
ray rushmore = NOPASSWD: /bin/kill, /bin/ls, /usr/bin/lprm
would allow the user ray to run /bin/kill, /bin/ls, and /usr/bin/lprm
as root on the machine rushmore without authenticating himself.
Еще один тег — это ALL
, чтобы разрешить пользователю ray запускать любую команду на любом хосте без пароля, вы можете использовать:
ray ALL= NOPASSWD: ALL
решение2
Как вы упомянули, отключать запрос пароля — плохая идея, если только система не работает в особо безопасной среде.
Одним из возможных решений является эта однострочная команда, которую я нахожу более простой для запоминания, чем параметр NOPASSWD. Получите права администратора и запустите
$ visudo
и добавьте следующую строку
Настройки по умолчанию: имя пользователя !аутентифицировать
Это полностью отключит запрос пароля для конкретного пользователя.