Comando sudo - configuração

Publicado por Guilherme Almeida Suckevicz em 28/02/2011

[ Hits: 26.953 ]

 


Comando sudo - configuração



Esta dica tem como objetivo auxiliar usuários que necessitam de uma configuração mais ajustada do comando sudo. As configurações aqui servem tanto para usuários iniciantes como também para os mais avançados.

O comando sudo, como o leitor deve saber, serve para dar privilégios de outros usuários. Normalmente ele é usado para obter privilégios do super usuário ou o usuário root.

Todos os procedimentos foram testados no Debian, mas acredito que esta dica é válida para qualquer distribuição, desde que tenha o sudo instalado no sistema.

O arquivo de configuração do sudo é o /etc/sudoers. Primeiramente, para podermos editar este arquivo, devemos dar permissão de leitura e escrita com o comando chmod.

# chmod 640 /etc/sudoers
# ls -l /etc/sudoers

-rw-r----- 1 root root 698 Fev 3 16:39 /etc/sudoers

Pronto. Assim temos permissão para editar o arquivo. Abra o arquivo com seu editor favorito e vamos lá!

DICA: Para uma melhor organização, procure no arquivo o local correto para o texto.

Vamos adicionar um usuário para executar os comandos com super-poderes, por exemplo:

Genérico:

User_Alias XXX = usuário1, usuário2, usuárioN

No meu caso:

User_Alias USER = guizzitus

Agora vamos adicionar um comando ou programa, para exemplo vou usar o comando halt, que serve para desligar o computador e o comando locate, que serve para pesquisar arquivos no sistema.

Genérico:

Cmnd_Alias YYY = /caminho/comando1, /caminho/comando2, /caminho/comandoN

Em nosso caso:

Cmnd_Alias HALT = /sbin/halt
Cmnd_Alias LOCATE = /usr/bin/locate

DICA: É necessário o caminho completo do comando. Para saber sua localização, digite num terminal:

# type comando1

Para completar a configuração:

Genérico: (lembre das configurações feitas)

XXX   ALL=YYY

ALL é equivalente a todos os hosts. Uma configuração mais ajustada pode ser feita assim:

XXX   host1=YYY

Em nosso caso:

USER    ALL=NOPASSWD: HALT
USER    ALL=LOCATE

É possível também definir no arquivo /etc/group os usuários que pertencem ao grupo sudo. Assim podemos fazer uma configuração usando nomes de grupos, por exemplo:

%sudo   ALL=NOPASSWD: HALT, LOCATE

Para que este método funcione é necessário adicionar a seguinte linha ao arquivo /etc/group:

sudo:x:27:usuário1:usuario2:usuárioN

Observe que é possível definir senha, assim quando fomos executar algum comando com o sudo vai ser pedido, ou não, a senha do usuário.

Obs.: cuidado ao permitir que qualquer usuário possa executar comandos sem a confirmação da senha.

Para finalizar devemos tirar a permissão de escrita do arquivo e adicionar a variável PATH do usuário a localização dos comandos.

Execute num terminal:

# chmod 440 /etc/sudoers
# ls -l /etc/sudoers

-r--r----- 1 root root 698 Fev 3 16:39 /etc/sudoers

Para ajustar a variável PATH com o diretório /sbin:

# echo PATH=PATH=`echo $PATH`:/sbin >> .bashrc
ou:
# export PATH=$PATH:/sbin

Tudo pronto. Para testar execute num shell:

sudo halt (hahahaha Brincadeira hein... =])

Para testar, vamos pesquisar um arquivo usando o comando locate:

sudo locate fstab

Se você configurou tudo certinho, vai ser pedido a senha do usuário e vai ser mostrado onde foram encontrados arquivos com nome fstab.

Espero ter contribuído com a comunidade com esta simples dica. Vou ficar feliz em responder qualquer dúvida e criticas são bem vindas também!

Um abraço a todos.

Outras dicas deste autor

Flashplayer no Firefox 64bits

Leitura recomendada

Utilizando find + exec e agilizando tarefas

Como escrever dicas e artigos para o VOL?

Crie a sua própria função Extend

Criando o hábito de ler sem gostar de ler

ESTUDO: Uso de sistemas de fonte aberto no ambiente corporativo

  

Comentários
[1] Comentário enviado por gustavoh84 em 12/03/2011 - 11:42h

Para editar o arquivo sem precisar alterar permissão basta executar o visudo




Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts