SSH diferente / senha de login da senha do SUDO

9

Gostaria de usar uma senha diferente para elevar meu status de usuário ao sudo do que a senha que utilizo para efetuar login (via GUI, shell ou SSH) na minha conta. Isso é possível?

EDITAR: Como a configuração da senha do root permitiria login como root, esse não é um bom caminho a seguir. Eu preferiria uma senha sudo específica do usuário, em vez de uma senha raiz do sistema.

    
por Richard 10.05.2012 / 19:44

4 respostas

2

de man 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.

Ou você pode simplesmente banir logins baseados em senhas via ssh completamente. Exigir uma chave criptografada de frase secreta para login remoto. Então você está livre para usar a senha do sudo. A opção relevante é

do man sshd_config

 PasswordAuthentication
         Specifies whether password authentication is allowed.  The default
         is “yes”.
    
por 10.05.2012 / 19:52
1

você está procurando por isso em sudoers man?

   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. 
    
por 10.05.2012 / 19:54
1

Que tal desabilitar o logon de senhas via SSH e permitir logon de chave pública, onde você pode definir sua senha difícil de adivinhar. Então a senha local pode ser mais curta e usada pelo sudo.

Além disso, você terá que configurar /etc/pam.d/sudo para usar um módulo diferente (ou adicional). À primeira vista, pam_dialpass pode permitir o que você precisa.

Você também pode configurar o LDAP para uma e as senhas locais para a outra. Tudo dependerá de quantas mudanças você é capaz e está disposto a fazer, quais módulos estão disponíveis, etc.

    
por 10.05.2012 / 21:38
1

SOLUÇÃO 1: newgrp

Uma maneira simples de abordar seu caso de uso seria usar :NOPASSWD em combinação com um grupo e grupo passwd:

Adicione uma linha a sudoers:

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

Crie um grupo protegido por senha:

groupadd rudo
gpasswd  rudo # Enter passwd

Agora, quando você fizer login como um usuário sem privilégios (supondo que você ainda não esteja no grupo rudo ), faça login no grupo rudo , quando você será solicitado a fornecer a senha.

login user
newgrp rudo

Agora você pode executar sudo password-less, desde que permaneça logado no grupo.

SOLUÇÃO 2: runaspw

Uma maneira melhor e possivelmente mais segura de fazer isso usa runaspw . runaspw está associado à opção runas_default , então você também precisa adicionar essa opção.

Supondo que você já tenha a entrada de grupo %sudo padrão:

%sudo   ALL=(ALL:ALL) ALL

adicione estas linhas ao arquivo sudoers:

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

Agora, adicione um novo usuário sudo com uma senha:

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

Agora usuários do grupo sudo serão solicitados a passar o usuário do sudo, mas somente usuários do grupo sudo poderão sudo (ao contrário da solução de grupo acima, onde qualquer pessoa no grupo ou com o grupo passwd poderia sudo).

Um problema menor é o usuário runas padrão agora é sudo so sudo como root você precisa especificar explicitamente root:

sudo -u root <cmd>

Mas é fácil definir um alias ( alias sudo='sudo -u root' ) ou um comando indireto do sudo.

    
por 17.06.2018 / 05:50