9

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

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

4 ответа4

2

от человека 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”.
1

вы ищете это вместо этого в 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. 
1

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

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

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

1

РЕШЕНИЕ 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.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .