Sudo, o que é isso?
Muitas pessoas falam sobre usar o sudo pra isso ou aquilo, mas pouco iniciantes sabem para que ele realmente serve. 'É para rodar coisas como root, não é?', certíssimo meu amigo, mas como ele faz isso? Quais os perigos de deixar o sudo habilitado pra todo mundo? Uma posição segura em relação ao sudo, vamos ver um pouco sobre ele.
Quais os perigos de deixar o sudo habilitado a 'torto e a direito' ;-p
Suponhamos que você tome conta de um servidor de uma grande empresa, um certo dia por algum motivo você tem que sair para resolver um problema longe do seu computador, se o sudo estiver habilitado QUALQUER pessoa poderá fazer um estrago no servidor, mas ai você fala 'O linux não é tão seguro? como ele poderá fazer um estrago no meu servidor?', bom amigo o Linux é um sistema extremamente seguro (não é atoa que é usado em grandes servidores), mas se o intruso tiver acesso físico a maquina, ainda mais com o sudo habilitado poderá fazer qualquer coisa. Mas se formos desabilitar o sudo iremos cair naquela questão 'Mas sem o sudo vou ter que muitas vezes entrar no sistema como root para fazer qualquer alteração importante, mas entrando como root a segurança do sistema também fica afetada, o que fazer?', essa é uma questão complicada, vamos ver um pouco mais sobre o sudo para tentarmos chegar a uma conclusão.
Entendendo o sudo
O sudo é um daqueles programas que facilitam a vida dos administradores, possibilitando executar comandos com privilégios de root. Ele possui um único arquivo de configuração, facilitando assim sua alteração, o arquivo é o /etc/sudoers, aqui vai um exemplo do arquivo:
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
# Host alias specification
# User alias specification
# Cmnd alias specification
# Defaults
Defaults !lecture,tty_tickets,!fqdn
# User privilege specification
root ALL=(ALL) ALL
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
Como podem ver este arquivo é bastando simplificado e por isso mais inseguro, ele é o padrão do Ubuntu 5.10, o Ubuntu por default não habilita a conta de root, por motivos de segurança (para o user não ficar acessando o sistema como administrador), mas em contra partida deixa o sudo aberto para o usuário com todos os comandos liberados, se você for uma pessoa esperta falaria 'Trocou 6 por meia dúzia ;-p', felizmente não caro amigo, quando uma pessoa entra no sistema com a conta do root, ela fica vulnerável pois todos os arquivos podem ser apagados/modificados mesmo sem você mandar, todos os comandos estarão disponíveis mesmo sem você chamar e outras coisas mais. Usando o sudo os comandos só estarão disponíveis quando chamados e os arquivos só poderam ser acessados quando requisitados, essa é a grande diferença.
Por padrão o Ubuntu sempre vai pedir a senha do usuário (pois a conta de root não é ativada) antes de liberar o acesso ao sudo propriamente dito, isso é uma questão de segurança, que mesmo parecendo chatice ;-p é muito importante. Se lembra daquele exemplo que dei sobre você ter que sair para resolver um problema longe do seu computador, nessas horas vamos ver o quanto isso é importante, pois mesmo que alguem tenha acesso físico a ele, não poderá alterar nada de importante, pois irá precisar saber a senha do usuário.
Vamos ver uma forma de restringir o uso do sudo, definindo o que cada usuário poderá executar com o sudo. Para editar o arquivo de configuração do sudo, faça o seguinte:
sudo gedit /etc/sudoers
Vamos supor que temos usuário para cada tarefa do dia-a-dia, vamos ver alguns deles:
mudar-senha ALL = /usr/bin/passwd [A-z]* , ! /usr/bin/passwd root
Este usuário foi criado com o objetivo de mudar as senhas dos outros usuários MENOS A SENHA DO ROOT.
reiniciar ALL = /usr/bin/reboot , /usr/bin/halt
Feito para reiniciar/desligar o sistema.
Esse são apenas exemplo do que se pode fazer, pode-se criar usuário para praticamente qualquer tarefa, dessa forma poderemos dividir os usuários por tarefas determinadas, resultando em um maior controle e organização do sistema como um todo. Uma outra proteção que o sudo faz é pedir a senha de usuário em um tempo determinado, se configurarmos nosso sudo para pedir a senha de usuário (no caso do Ubuntu, em outras distros onde a conta de root está habilitada, é ela que será pedida) a cada 5 minutos, quando se passar os 5 minutos determinados só será possível acesso aos arquivos do root fornecendo novamente a senha.
Conclusão
O sudo é um recurso extremamente útil se for bem utilizado, sempre que estiver administrando um computador, procure ver que poderes o usuário que você está logado tem dentro do sudoers, se for fazer uma tarefa rotineira, crie um usuário só para aquela tarefa e com permissão só para isso, nunca deixe de fazer o sudo pedir a senha antes de executar o sudo, um exemplo de uma configuração errada seria:
reiniciar NOPASSWD = /usr/bin/reboot , /usr/bin/halt
Fazendo isso qualquer um que tiver acesso físico a sua maquina poderá reiniciar/desligar o sistema, lembra daquele primeiro exemplo? mais uma vez ele se aplica aqui.
SUDO, UTILIZE COM MODERAÇÃO
(esse final ficou parecendo comercial de cerveja :lol: :lol: :lol: :lol: :lol: :lol: )
espero que gostem
PS:Lembrando que artigos e manuais (inclusive este) estão licenciados pela gpl