Como faço su como usuário normal sem senha?

1

Eu queria saber se alguém pode me ajudar com meu roteiro.

Eu tenho 2 servidores. Vamos chamá-los de Servidor A e Servidor B. O Servidor B possui um software instalado que eu gostaria de executar do Servidor A. Não consigo instalar o software no Servidor A.

Tenho que permitir que os usuários executem outro software no Servidor A, que então chamará um script para chamar o software no Servidor B para executar um comando.

Então eu criei um usuário chamado transfer no servidor A e no servidor B. Eu permiti que a transferência fosse capaz de ssh no servidor B sem precisar de senha usando as chaves de autenticação.

Agora, do Server A, estou tentando su como transfer, ssh no Server B e executo o comando.

Isso funciona perfeitamente como root. No entanto, quando sou eu mesmo ou qualquer outro usuário, ele está me pedindo senha para o usuário "transferir" no Servidor B.

Aqui está a sequência de comandos:

 #!/bin/bash
 su transfer -c 'ssh transfer@ServerB script $1 $2' 
    
por John Blahson 09.08.2016 / 21:19

1 resposta

1

Crie um script de shell que execute o comando remoto:

% cat > /home/transfer/exec-remote-sw <<EOF
#!/bin/bash
ssh transfer@ServerB script $1 $2
EOF
% chmod 755 /home/transfer/exec-remote-sw

Teste este script executando-o como o transfer user:

% /home/transfer/exec-remote-sw  arg1  arg2

Agora, como root, crie um grupo do Linux (por exemplo, transfer ) e adicione todos os usuários que precisam acessar essa funcionalidade no grupo Unix:

% groupadd transfer
% usermod -a -G transfer login1
% usermod -a -G transfer login2
...
% usermod -a -G transfer loginN

Como root, anexe o seguinte ao arquivo /etc/sudoers executando visudo :

%transfer   serverA = (transfer) NOPASSWD: /home/transfer/exec-remote-sw

Teste fazendo login como um dos usuários no grupo de transferência e executando:

% sudo -u transfer /home/transfer/exec-remote-sw  arg1  arg2

Para simplificar isso para seus usuários, peça-lhes que incluam o seguinte em seus arquivos .profile (ou inclua em / etc / profile para todos):

alias svrbexec="sudo -u transfer /home/transfer/exec-remote-sw"

Os usuários podem digitar:

% svrbexec  arg1  arg2

e o processo remoto deve ser executado com seus dois parâmetros passados.

    
por 09.08.2016 / 22:58

Tags