Другой пароль SSH/ логин от SUDO Password

Я хотел бы использовать другой пароль для повышения статуса пользователя до статуса sudo, чем пароль, который я использую для входа (через GUI, оболочку или SSH) в свою учетную запись. Это возможно?

РЕДАКТИРОВАТЬ: Поскольку установка пароля root позволит войти в систему как root, это не очень хороший способ. Я бы предпочел пользовательский пароль sudo, а не системный пароль root.

4 ответа

От человека sudoers:

rootpw          If set, sudo will prompt for the root password instead of the
                password of the invoking user.  This flag is off by default.

runaspw         If set, sudo will prompt for the password of the user defined
                by the runas_default option (defaults to root) instead of the
                password of the invoking user.  This flag is off by default.

Или вы можете просто полностью запретить логин на основе пароля через ssh. Требуется ключ шифрования пароля для удаленного входа в систему. Тогда вы можете использовать пароль для sudo. Соответствующая опция

от человека sshd_config

 PasswordAuthentication
         Specifies whether password authentication is allowed.  The default
         is “yes”.

Вы ищете это вместо этого в sudoers человек?

   targetpw        If set, sudo will prompt for the password of the user
                   specified by the -u option (defaults to root) instead of the
                   password of the invoking user. 

Как насчет отключения входа по паролю через SSH и разрешения входа с открытым ключом, где вы можете установить свой трудно угадываемый пароль. Тогда локальный пароль может быть короче и использоваться sudo.

Помимо этого вам придется настроить /etc/pam.d/sudo использовать другой (или дополнительный) модуль, на первый взгляд pam_dialpass может позволить то, что вам нужно.

Вы также можете настроить конфигурацию LDAP для одного и локальные пароли для другого. Все будет зависеть от того, сколько изменений вы сможете и готовы сделать, какие модули доступны и т. Д.

РЕШЕНИЕ 1: newgrp

Простой способ решения вашего варианта использования будет использовать :NOPASSWD в сочетании с группой и паролем passwd:

Добавьте строку в sudoers:

%rudo   ALL=(ALL:ALL) NOPASSWD:ALL

Создайте защищенную группу passwd:

groupadd rudo
gpasswd  rudo # Enter passwd

Теперь, когда вы входите в систему как непривилегированный пользователь (при условии, что вы еще не в rudo группа), войдите в rudo группы, после чего вам будет предложено ввести пароль.

login user
newgrp rudo

Теперь вы можете запустить sudo без пароля до тех пор, пока вы останетесь в группе.


РЕШЕНИЕ 2: runaspw

Лучший, возможно, более безопасный способ сделать это использует runaspw, runaspw связано с runas_default вариант, поэтому вы должны добавить эту опцию тоже.

Если у вас уже есть значение по умолчанию %sudo запись группы:

%sudo   ALL=(ALL:ALL) ALL

добавьте эти строки в файл sudoers:

Defaults:%sudo  runas_default=sudo
Defaults:%sudo  runaspw

Теперь добавьте новый sudo пользователь с паролем:

useradd sudo -d /nonexistent -s /usr/sbin/nologin -MNr
passwd sudo

Теперь пользователям группы sudo будет предложено ввести пароль пользователя sudo, но sudo смогут использовать только пользователи из группы sudo (в отличие от вышеуказанного решения для группы, где любой пользователь в группе или группе passwd может использовать sudo).

Незначительная проблема - пользователь runas по умолчанию теперь sudo поэтому для sudo как root вам нужно явно указать root:

sudo -u root <cmd>

Но достаточно просто определить псевдоним (alias sudo='sudo -u root') или косвенная команда sudo.

Другие вопросы по тегам