sudo

No servidor você trabalha como usuário comum: o sudo roda um comando como root. Quem pode usar, sudo -u e a armadilha do >.

>_ Teste aqui: um Linux simulado, nesta página
Carregando o terminal…

Exemplos

  • sudo -l
  • sudo touch /srv/site/index.html
  • ls -l /srv/site
  • echo "hello" | sudo tee /srv/site/index.html
  • sudo useradd -m -s /bin/bash intern
  • sudo -u intern whoami

Como funciona

Em servidores de verdade você entra como usuário comum (o prompt termina em $). Os arquivos fora da sua pasta pessoal são do root, então mexer neles dá "Permission denied". O sudo COMMAND roda aquele único comando como root.

Só usuários do grupo sudo (ou listados em /etc/sudoers.d) podem usar — o id mostra seus grupos. O sudo -u USER roda um comando como outra pessoa.

Sintaxe

sudo [-u USUÁRIO] COMANDO  |  sudo -l

Opções

OpçãoO que faz
COMMANDroda como root
-u USERroda como esse usuário
-lo que você tem permissão de rodar
| sudo tee FILEescreve num arquivo do root (o > sozinho não consegue)

Bom saber

  • sudo echo hi > /etc/motd ainda falha: o > é feito pelo seu próprio shell, antes do sudo rodar. Use echo hi | sudo tee /etc/motd.
  • Evite o sudo -i (um shell de root inteiro) no dia a dia: um comando de cada vez é mais seguro e mais fácil de conferir depois.