Aprendendo a usar e configurar o Sudo

Share

O que é o sudo?
Ele é uma ferramenta que permite um usuário comum executar um comando qualquer como root, sem efetuar login como tal. Ele é derivado do comando su, que é usado para mudar de usuário. Sua sintaxe básica é:

 

$ sudo <comando>

O sudo oferece vários benefícios importantes;

Ele registra todos os comandos executados com ele;
Ele registra falhas de autenticação de login;
Com ele, podemos restringir que usuários o utilizarão e o que farão;
Usando o sudo, não precisaremos distribuir a senha de root para os usuários.

 

Seu arquivos de configuração é o /etc/sudoers e deve ser editado com o comando visudo.

 

Segue abaixo um exemplo do /etc/sudoers e algumas configurações básicas:

root@sejalivre:~# visudo 

# sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.
#

# Host alias specification

# User alias specification

# Cmnd alias specification

# Defaults specification

# Runas alias specification

# User privilege specification
root ALL=(ALL) ALL
# Uncomment to allow people in group wheel to run all commands
# %wheel ALL=(ALL) ALL

# Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

# Samples
# %users ALL=/sbin/mount /cdrom,/sbin/umount /cdrom
# %users localhost=/sbin/shutdown -h now

Pode-se ver nesse arquivo que temos alguns exemplos de configuração.
Por exemplo, se quizermos dar privilegios para o usuário fulano para dar um shutdown na maquina, fariamos o seguinte:

Após a linha

root ALL=(ALL) NOPASSWD: ALL

Colocariamos a linha:

fulano ALL=NOPASSWD: /sbin/shutdown 

O que foi dito ai em cima, foi o seguinte:

fulano -> Usuário que vai receber o privilégio
ALL -> Host em que vai ser utilizado (pode ser também como localhost)
NOPASSWD -> Sem confirmação de senha
/sbin/shutdown -> Comando de permissão

Como você deve estar imaginando, podemos adicionar os comandos que desejamos apenas alterando esta linha.
fulano ALL=NOPASSWD: /sbin/shutdown,/sbin/poweroff,/sbin/mount 

No Ubuntu, o primeiro usuário que é criado, tem todos os poderes de super usuário.
Isso é tudo feito via sudo. Mas como fazer para um usuário ter todos os poderes?
Este é o mais simples de todas as configurações:

fulano ALL=(ALL) NOPASSWD: ALL 

Desta forma, o usuário fulano não precisa mais digitar a senha, e tem todas as permissões com o sudo.

OK?
Para que o shutdown funcione, por exemplo, basta colocarmos:

fulano@sejalivre:~$ sudo /sbin/shutdown -h now 

Para que os comandos inseridos em /sbin (por exemplo) há a necessidade de inserirmos o caminho completo da aplicação.

E sobre aplicações gráficas

Embora não seja uma ótima idéia para rodar qualquer aplicativo gráfico como root, existem alguns casos que precisam, como gerenciadores de pacotes e ferramentas de configuração do sistema. O Gerenciador de Pacotes Synaptic, por exemplo. Um usuário comum pode executar o comando ‘synaptic’, mas receberá erros por não ter privilégios administrativos. Mas, se este usuário utilizar o gksu (para Gnome) ou kdesu (para KDE), primeiro será solicitado a senha de root e depois a aplicação seria executado corretamente.

 

Se você quiser se aprofundar nas configurações do sudoers, leia este tutorial muito completo sobre as configurações do sudo.

Quer continuar por dentro das novidades do Blog Seja Livre? Siga o nosso perfil no TWITTER, curta a nossa página no FACEBOOK ou adicione o Blog Seja Livre nos seus círculos do GOOGLE+.