su e redirecionamento

2

A seguinte linha mostra o princípio de uma construção que eu posso usar sob o Red Hat 5.5:

$ echo "foo" | ssh myhost "echo \"cat <&1\" | su --login"
foo

Na verdade, nunca ficou claro para mim por que o gato pode ler o FD # 1, mas funciona.

Agora com o Red Hat 6.3 que não funciona mais:

$ echo "foo" | ssh myhost "echo \"cat <&1\" | su --login"
cat: -: Bad file descriptor

Primeira pergunta: Por que isso não funciona mais? Segunda pergunta: Alguém tem uma ideia para uma solução que funcione sob o Red Hat 6.3?

Todas as ideias são apreciadas.

Armin

    
por Armin 04.10.2012 / 18:19

1 resposta

2

Espere, então basicamente você quer ssh para myhost, então imediatamente su para root sem um prompt de senha, com o efeito colateral de colocar a senha de root em ps output para todos nas máquinas locais e possivelmente remotas ver?

Sim, humm, não faça isso.

Existem três maneiras de fazer isso, que funcionam em todos os lugares e eliminam a divulgação de senha de root (na ordem em que eu preferiria):

  1. Apenas ssh para root @ myhost. Use a autenticação de chave pública para evitar o prompt de senha. De preferência, mantenha sua chave privada criptografada (mas use o SSH Agent e / ou multiplexação de conexão para reduzir os prompts de senha). Você pode configurar o ssh para permitir logins de raiz com PermitRootLogin yes ou somente os de chave pública com PermitRootLogin without-password .
  2. SSH como você é atualmente, mas use sudo -i em vez de su --login . Configure o sudo (via visudo ) para permitir que seu usuário não-root execute todos os comandos como root (possivelmente sem uma senha, mas seu usuário não-root é equivalente à raiz do ponto de vista de segurança)
  3. Altere sua configuração do PAM para que su não solicite uma senha do seu não-usuário. Seu usuário é mais uma vez equivalente a raiz do ponto de vista de segurança.
por 04.10.2012 / 19:06