27 fevereiro 2006

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

9 comentários:

Anônimo disse...

O texto ficou bom, mas em compensação a formatação....

Anderson disse...

Poderíamos dizer que o sudo tem a função do "Executar como..." que temos no XP?

Anônimo disse...

Tomara que o surja o sudo modo gráfico! Porque, ô negocio que embaralha a cabeça esse troço de permitir não permitir. O formato das pastas do Linux é complicado!

Jorge Osni disse...

Muito bom, me tirou várias dúvidas,abraços

Anônimo disse...

Tá dificil, dão muitas voltas para explicar as coisas, um dia o linux chegará aos pés do windows, só quando os usuário linux apreenderem a explicarem as coisa de forma clara.

Ediane disse...

Obrigada, esclarecu minhas dúvidas qto ao SUDO

Anônimo disse...

A questão é proteger ou se defender? com qual vc fica?

Rui disse...

Disseram-me para instalar o sudo, e deram-me um comando para eu o instalar apartitir do terminal (sudo apt-get install flashplugin-nonfree)

e eu a meio da instalação parei (com o ctrl-z)

e nem pensei mais nisso. Depois fui ao centro de software tentei instalar uma aplicação e ele dá-me este erro: diz-me que deixei uma instalação a meio e que tenho de reparar esse erro antes de poder instalar mais coisas.... Ja tentei desinstalar, mas n consegui encontrar o local onde os ficheiros do sudo forma posto... Só comecei a usar o Linux a um mes e n percebo ainda muito... dá para me darem uma ajuda? se sim agradecia imenso...

Rui

Anônimo disse...

Existe uma falha grotesca no sudo, que permite, mesmo com exceções, que seja modificado qualquer arquivo usando o vim.

Postar um comentário