[DICA] Um pouco sobre login de root e sudo

leandroramos
editado abril 2020 em Fedora

O artigo traz uma visão geral sobre o uso do root e do sudo. Se quiserem se aprofundar mais no conhecimento, recomendo os artigos do nosso amigo @Blau:
https://debxp.org/artigos/substituir-usuario-o-comando-su
https://debxp.org/artigos/um_pouco_mais_sobre_sudo_e_root

Login de root?

Quando precisamos executar tarefas administrativas no sistema, precisamos obter privilégios elevados, e o super usuário root é quem pode executar qualquer comando no Fedora.

Como obter acesso ao root?

Existem diferenças entre o Fedora Workstation e as Spins do Fedora:

Root no Fedora Workstation

Durante a instalação do Fedora Workstation, o acesso ao super usuário root não é configurado. Podemos configurar no pós-instalação (alerta de opinião pessoal aqui: você nunca vai precisar disso) configurando uma senha para o root, com o abaixo:
sudo passwd root

E para fazer o login com o root, podemos usar o comando abaixo:
su -

Existem muitas formas de fazer esse login, mas vou detalhar o uso do su no final do artigo (incluindo a explicação para o sinal de menos (-) no final do comando su.

Veja na imagem:

Root nas Spins do Fedora

Durante a instalação de qualquer spin do Fedora, o usuário root já vem habilitado e podemos configurar sua senha no Anaconda (instalador do Fedora).
Se não quisermos o acesso ao root numa das spins, podemos bloquear o acesso ao root, também no Anaconda (lock root account)

Veja a criação da conta do root na imagen:

O que é o sudo?

sudo é o comando que usamos para executar tarefas com privilégios de outro usuário. O mais comum é usar para obter privilégios do super usuário root, mas não é o único uso possível.

Sudo pode significar super user do (para tarefas como super usuário) ou substitute user do (para tarefas com privilégios de outro usuário qualquer).

Como obter o sudo

O pacote sudo já vem instalado no Fedora Workstation e também nas spins do Fedora, mas existem algumas diferenças entre Workstation e Spins.

Sudo no Fedora Workstation

No Fedora Workstation, o primeiro usuário criado já possui acesso ao sudo. Após a instalação do Workstation, no primeiro boot, o sistema executa o gnome-initial-setup, onde precisamos criar o usuário e sua senha. Esse usuário já será um sudoer (pessoa que pode acessar o sudo).

Criação do usuário no gnome-initial-setup

Criação da senha para o usuário

Sudo nas Spins do Fedora

Durante a instalação de uma spin do Fedora, nós podemos dar acesso de administrador ao usuário criado, para que ele possa usar o sudo. Se não marcarmos a opção "Tornar este usuário administrador", o usuário não terá acesso ao sudo.

Usuário como administrador

Finalmente: usando o sudo e o login de root

Usando o sudo

Para executar alguma tarefa administrativa com o sudo, é só escrever sudo no início do comando que queremos executar. Conselho: Usem isso com cuidado, pessoal. Exemplos:

sudo dnf upgrade
sudo rm /etc/yum.repos.d/algum-repositorio.repo

Mas o sudo também serve para executar comandos com outro usuário. Sei que é raro, mas é bom mencionar. Exemplo:

sudo -u leonardo mkdir projetos
O comando acima cria o diretório (ou pasta) projetos, mas com as permissões do usuário leonardo.

Usando o login de root

Para efetuar o login como root, use o comando (existem várias formas, e eu recomendo uma leitura no manual do comando: man su), use o comando abaixo:

su -

Mas... por que o "menos" no final do comando?

Quando usamos o comando su, estamos usando o Substitute User, ou seja, estamos substituindo o usuário atual por outro. Se não especificarmos o nome do usuário para o qual queremos mudar, o sistema entende que queremos substituir o usuário atual pelo root. Nessa substituição, precisamos carregar o ambiente do novo usuário (incluindo o do root), e esse "menos" faz isso.

Se executarmos o comando su leonardo, mudaremos para o usuário leonardo, mas permaneceremos com variáveis de ambiente do usuário anterior. O mesmo ocorre quando mudamos para o root: ao usarmos o comando su, mudamos para o root, mas permanecemos usando as variáveis de ambiente do usuário anterior. Isso pode não fazer diferença para a maioria das coisas no Fedora, mas é muito importante sabermos a diferença caso algo dê errado. Usando o comando su - (ou su --login, ou su - root, etc...) nós entramos no login do root carregando o ambiente do root. Vou mostrar a diferença nas imagens abaixo.

Logando com su - repare no PATH, o root permanece com o PATH do usuário leandro.

Logando com su - - repare que o PATH do root é diferente.

Criando um novo usuário com poderes de sudoer

Usando interface gráfica

Se você tiver a opção de fazer pela interface gráfica, pode ser mais fácil. Explore o sistema, nem tudo precisa ser por comando.

Crie um novo usuário

Configure o acesso de administrador

Usando a linha de comando

Use o comando useradd, mas não se esqueça do parâmetro -m ou --create-home

sudo useradd -m leonardo

Crie uma senha para o usuário
sudo passwd leonardo

Adicione o usuário ao grupo wheel
sudo usermod -aG wheel leonardo

Obs.: O grupo wheel é sudoer

Outra Obs.: Você nunca, ou quase nunca, vai precisar mexer no arquivo de sudoers. Caso precise ou queira, não abra o arquivo /etc/sudoers para edição, mas use o comando sudo visudo para isso.

Considerações e opinião pessoal

Eu recomendo o uso do sudo, sempre. No entanto, o uso do root pode ser vantajoso caso você precise executar muitos comandos seguidos como administrador (muitos mesmo). Se for para executar pouca coisa, não é necessário usar o root.
Digo isso porque, frequentemente, vejo pessoas que se esquecem de desfazer o login de root após o comando, e acabam usando o root para coisas que não necessitam de privilégios elevados, gravando coisas como root dentro da home do usuário, para depois ter que alterar as permissões do arquivo e poder acessar como usuário normal, etc.

Use sudo ou root, mas use sempre com cuidado e nunca execute comandos sem saber o que eles fazem.

Abraços, pessoal!

Comentários