Другой пароль 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.