RootSudo

O que é "Root" e "Sudo"? Por que usar e como usar

No GNU/Linux (e no Unix em geral), existe um super-usuário chamado root. O equivalente no Windows© para root é o Administrador. O super-usuário pode fazer tudo, e então, trabalhar diariamente como super-usuário pode ser perigoso. Você pode digitar o comando incorretamente e derrubar o sistema. Idealmente, você usa o usuário que tem privilégios para as tarefas que executa. Em alguns casos, esse usuário tem de ser o root, mas na maioria deles pode ser um usuário comum.

Por padrão, a senha do root é travada no Ubuntu. Isso significa que você não pode fazer login como root ou usar o comando "su". Ao invés disso, o instalador irá configurar o comando "sudo" para possibilitar que o usuário criado durante a instalação possa executar todos os comandos de administração.

Você pode, a partir do Terminal, usar o "sudo" para comandos que requerem o privilégio de root. Todos os programas no menu irão usar uma interface gráfica para o sudo para perguntar a senha, quando isso ocorrer, forneça a sua senha Quando você for perguntado pela senha, você precisa fornecer Sua senha, isso significa que a senha do root não é necessária.

Observações importantes

  • A senha é armazenada por 15 minutos. Depois disso, você terá de digitar a senha novamente.
  • Sua senha não será mostrada na tela enquanto você a digita no terminal, apenas será mostrada com asteriscos quando você digitá-la pela interface gráfica.

  • Para executar a configuração gráfica com o sudo, apenas lance a aplicação pelo menu.

  • Para executar usando sudo um programa que normalmente é executado como de usuário, como o gedit, aperte ALT + F2 e digite gksudo gedit. Para usuários do Kubuntu, use kdesu no lugar de gksudo.

  • Para usar sudo na linha de comando, escreva sudo antes do comando, como demonstrado abaixo:

Exemplo #1

sudo chown bob *

Exemplo #2

sudo /etc/init.d/networking restart
  • NUNCA use sudo para executar programas gráficos. Você deve sempre usar gksudo ou kdesu para rodar esses programas, caso contrário, novas tentativas de login poderão falhar.

  • Para iniciar um shell em root (ex.: um terminal de comandos que você pode rodar comandos do root) use:

sudo -i

Permitindo outros usuários executarem o sudo

Icones/usuarios.png Para dar permissões administrativas para um novo usuário, abra Usuários e Grupos que fica no menu Sistema > Administração. Depois, clique no usuário e clique em propriedades. Escolha a aba Privilégios do Usuário. Na aba, encontre a opção Executando tarefas de administração do sistema e marque-a.

Warning /!\ No terminal, pode ser feito com o comando abaixo, onde $usuario deve ser o nome do usuário:

sudo adduser $usuario admin

Benefícios de se usar o sudo

Os benefícios de se deixar o root desabilitado por padrão são:

  • O instalador tem de perguntar menos questões
  • Usuários não precisam lembrar-se de uma senha extra, que é bem provável de ser esquecida
  • Evita o login onde se é possível fazer tudo -a senha será requisitada antes que grandes mudanças possam acontecer- o que fará você pensar antes nas consequências do que você fará.

  • O sudo adiciona um log de cada comando que é executado por ele (em /var/log/auth.log). Se você fizer algo de errado, pode sempre olhar quais comandos executou. Também é interessante para auditoria.

  • Cada 'cracker' tentando usar força-bruta irá tentar usar a senha na conta de root primeiro. O que eles não sabem é o nome de usuário dos usuários da sua máquina.

  • Permite fácil transferência de permissões administrativas, num período de tempo curto ou longo, adicionando ou removendo usuários de um grupo, não comprometendo a conta do root.

  • Sudo pode ser configurado com uma política de segurança muito mais restritiva.

Desvantagens do uso do sudo

Embora para desktops os benefícios do uso do sudo sejam grandes, existem alguns problemas que precisam ser notados:

  • Redirecionar a saída de comandos executados com sudo pode ser muito difícil para novos usuários. Considere por exemplo sudo ls > /root/algumarquivo. Não irá funcionar porque é o shell que tenta escrever para o arquivo. Você pode usar ls | sudo tee -a /root/algumarquivo para anexar ao arquivo ou ls | sudo tee /root/algumarquivo para sobrescrever o seu conteúdo.

  • Em diversos escritórios de trabalho, o ÚNICO usuário local em um sistema é o root. Todos os outros usuários são importados usando técnicas de NSS como o nss-ldap. Para configurar uma estação de trabalho ou consertá-la, no caso de uma falha da rede onde o nss-ldap deixa de funcionar, a conta de root é requerida. Isto impossibilita o sistema de ser usado. Um usuário local extra, ou uma conta de root com senha é requerido nesse caso.

Concepções Erradas

  • O sudo não é menos seguro que o su?

    • O modelo de segurança é o mesmo e, portanto esses dois sistemas dividem a sua fraqueza primária. Qualquer usuário que pode usar su ou sudo tem privilégios administrativos no sistema. Se a conta do usuário é comprometida por um atacante (invasor), ele também irá ganhar privilégios de root. A conta do usuário é o elo fraco da corrente, que deve ser protegido como o mesmo cuidado do root. O comando sudo provê algumas características que encorajam diferentes hábitos de trabalho, que impactam positivamente na segurança do sistema. sudo é comumente usado para executar apenas um comando, enquanto su é geralmente usado para abrir um shell e executar múltiplos comandos. A solução do sudo reduz a probabilidade de que um shell logado com o root seja deixado aberto, e encoraja aos usuários diminuirem o uso do privilégio root, aumentando assim a segurança do ambiente.

  • Eu não poderei entrar mais em modo usuário-único!

    • O programa sulogin no Ubuntu foi feito para lidar com o caso padrão de uma senha de root travada.

Configurando o sudo para sempre pedir senha

Quando você executa uma aplicação como root no Ubuntu, utilizando o sudo, a sessão não pedirá senha nos próximos 15 minutos. Essa é a configuração padrão, que muitos acham inseguro, pois aplicações suspeitas podem agir sobre arquivos do sistema neste intervalo. Fazendo esta configuração, o sistema sempre irá pedir a senha quando uma aplicação for executada como root.

1. Abra o arquivo /etc/sudoers para editá-lo conforme comando abaixo:

sudo visudo

2. Adicione a seguinte linha ao final do arquivo e salve o mesmo:

Defaults:nome_de_usuario timestamp_timeout=0

Icones/importante.png

NOTA: Substitua o termo nome_de_usuario pelo nome do seu usuário.
O número 0 (zero) significa que o tempo em que o sistema não pedirá senha é de zero minutos, mas você pode modificar este tempo de acordo com suas preferências.

Voltando para a conta de root tradicional

Info <!> Isto não é recomendado!

Habilitando a conta de root

Para habilitar a conta de root (ex.: definir uma senha) use:

sudo passwd root

Digite a senha da sua conta normal
Digite a nova senha para o root
Confirme a nova senha

Desabilitando a conta de root

Se você habilitou a conta de root e agora quer desabilitar novamente, use o comando:

sudo passwd -l root

Isto trava a conta de root.

Desativar o sudo

Essa atitude irá provocar uma queda na segurança do sistema, então só siga os passos a seguir se você estiver consciente do que está fazendo.

Após o boot e login inicial, aperte um ALT+F2 e execute o comando:

gksu gnome-terminal

Isso fará com que os procedimentos a seguir não necessitem mais do sudo. Como foi dito você pode desconsiderar o sudo quando abrir o terminal precedido do gksu.

Fazendo com que o sudo peça a senha de root

Você pode fazer o sudo pedir a senha de root ao invés da do seu usuário. Isto pode ser feito adicionando palavra-chave rootpw na linha que começa com Defaults do arquivo /etc/sudoers.

Habilitando o login gráfico como root

Info <!> É altamente recomendado não permitir o root a se logar graficamente.

No Gnome

  • Abra Sistema --> Administração --> Configuração da Tela de Início de Sessão

  • Clique na aba Segurança
  • Marque Permitir ao root iniciar uma sessão pelo GDM

No KDE

  • Abra a pasta /etc/kde3/kdm/ no Konqueror
  • Clique com o botão direito no arquivo kdmrc e então em Ações --> 'Editar como root'

  • Na linha 246 deve estar AllowRootLogin=false, mude de 'false' para 'true'

  • Salve e feche.

No Console

  • Troque para um terminal virtual com Ctrl+Alt+F1 (or F2, F3, ..., F6). Você pode voltar a sua sessão com Ctrl+Alt+F7.
  • Logue-se com seu usuário.
  • Mude para root com o comando "sudo -i".

  • Inicie um novo servidor X no :1 com "startx -- :1".

    • Você pode executar um gerenciador de janelas diferente (como o fvwm) com algo como "startx fvwm -- :1".

    • Você deve usar o display :1 por o padrão (display :0) já está sendo usado por você.
  • Tome cuidado, você é super-usuário. Não se esqueça de efetuar logout do X e do console quando você terminar.

Video aula

Icones/video.png Uma vídeo aula, produzido por Alarcon, sobre o superusuário, root, sudo, sudo su no Ubuntu.

Créditos

Autor: MadPilot

Data: 05/02/2006

Local: RootSudo

Autor 2: JyullianoRocha

Data: 12/04/2008

Local: RootSudo

Wikifier: DocTeam

Data: 21/11/2007

Mantenedor: arlei

Time de Documentação do Ubuntu Brasil


CategoryDocumentacao CategoryRevisada

RootSudo (last edited 2011-09-19 23:21:34 by localhost)