É possível cancelar remotamente um encerramento programado quando existe / run / nologin?

5

Considere este cenário:

  1. Usuário ssh em um sistema e faz o que quiser.
  2. Em seguida, programa um shutdown usando:

    sudo shutdown -h +1
    
  3. Finalmente fecha a sessão ssh

Agora, /run/nologin foi criado e ninguém mais pode fazer login, mas algo aparece e queremos ssh de volta ao sistema antes que ele seja desativado.

É possível cancelar remotamente o desligamento programado quando não temos permissão para fazer login?

    
por Ravexina 31.08.2018 / 19:36

3 respostas

9

Além de usar a conta "root" para criar uma nova conexão ssh , podemos usar o PAM para permitir o login de usuários ou grupos específicos.

As configurações do PAM de sshd estão localizadas em: /etc/pam.d/sshd , que são responsáveis pelo que você está procurando.

Ao editar este arquivo e usar pam_succeed_if.so , podemos permitir que um usuário ou grupo específico faça login mesmo quando /run/nologin existir na máquina.

pam_succeed_if.so is designed to succeed or fail authentication based on characteristics of the account belonging to the user being authenticated or values of other PAM items. One use is to select whether to load other modules based on this test.

Por isso, o usamos para detectar qualquer coisa que devamos carregar pam_nologin.so module ou não com base no seu nome de usuário ou grupo de usuários.

Abra o arquivo usando seu editor de texto favorito:

$ sudo vi /etc/pam.d/sshd

E encontre estas linhas:

# Disallow non-root logins when /etc/nologin exists.
account    required     pam_nologin.so

Adicione esta linha entre eles:

account  [default=1 success=ignore] pam_succeed_if.so quiet user notingroup sudo

Então agora as linhas devem ficar assim:

# Disallow non-root logins when /etc/nologin exists.
account  [default=1 success=ignore] pam_succeed_if.so quiet user notingroup sudo
account  required     pam_nologin.so

Agora, os usuários que estão em sudo group podem fazer login mesmo quando /run/nologin existir.

E para permitir um usuário específico:

account [default=2 success=ignore] pam_succeed_if.so quiet user != username

Para verificações mais flexíveis:

man pam_succeed_if
    
por 31.08.2018 / 19:58
3

Se root puder efetuar login remotamente no sistema, nologin será ignorado. No entanto, a maioria dos administradores normais não permitirá que root faça login diretamente, em favor de um usuário autorizado fazendo login e usando sudo . Se o último não for o caso, no entanto, root pode efetuar login e abortar o encerramento.

    
por 31.08.2018 / 19:40
2

O nologin é ignorado para o usuário root. Portanto, você pode usar o SSH para se conectar como root, mas provavelmente tem uma distribuição que não permite logins raiz por padrão. Você pode criar uma chave SSH e colocá-la em ~root/.ssh/authorized_keys , então você pode fazer login com essa chave como root.

    
por 31.08.2018 / 19:41

Tags