O que faz as diferenças entre 'sudo CMD' e 'sudo su' seguidas de 'CMD'?

3

Eu tenho um servidor SSH com chave somente auth e quero adicionar uma chave para um novo usuário.

Faço login com um usuário (kidmose), tento anexar a chave a um authorized_keys de um novo usuário (remoto) e ele falha:

kidmose@hech-remote-control:~$ sudo cat .ssh/id_rsa.pub > /home/remote/.ssh/authorized_keys
-bash: /home/remote/.ssh/authorized_keys: Permission denied

Eu sudo su primeiro e as coisas funcionam:

kidmose@hech-remote-control:~$ sudo su
[sudo] password for kidmose: 
root@hech-remote-control:/home/kidmose# cat .ssh/id_rsa.pub > /home/remote/.ssh/authorized_keys

Informação do bônus:

kidmose@hech-remote-control:~$ ll /home/remote/.ssh/authorized_keys
-rw-r--r-- 1 remote remote 409 Oct 16 07:14 /home/remote/.ssh/authorized_keys
kidmose@hech-remote-control:~$ uname -a
Linux hech-remote-control.egki 3.13.0-36-generic #63-Ubuntu SMP Wed Sep 3 21:30:07 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Então, qual é a diferença (relevante) entre as duas abordagens?

    
por kidmose 16.10.2014 / 09:26

2 respostas

1

No primeiro caso

 kidmose@hech-remote-control:~$ sudo cat .ssh/id_rsa.pub > /home/remote/.ssh/authorized_keys
  • seu bash (tente) abrir o redirecionamento para o arquivo /home/remote/.ssh/authorized_keys
  • execute sudo cat .ssh/id_rsa.pub

Como você não tem acesso, o comando falhou.

    
por 16.10.2014 / 10:16
1

No primeiro caso, o único comando executado com privilégios de superusuário é cat . O redirecionamento para /home/remote/.ssh/authorized_keys é executado como usuário normal.

No segundo caso, você muda para a conta root e todos os comandos são executados com os privilégios do superusuário.

    
por 16.10.2014 / 10:24