O que faz as diferenças entre `sudo CMD` e` sudo su` seguidas por `CMD`?


3

Eu tenho um servidor SSH com autenticação apenas por chave e quero adicionar uma chave para um novo usuário.

Faço login com um usuário (kidmose), tento anexar a chave a um novo usuário (remoto) authoredkeys 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 suprimeiro 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ções sobre 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?

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
  • então execute sudo cat .ssh/id_rsa.pub

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


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ê alterna para a conta raiz e todos os comandos são executados com os privilégios do superusuário.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.