Comando sudo

Todo usuário quer ser o administrador da máquina… aquele que manda e desmanda no sistema, instala isso, aquilo e outro… No Linux, o usuário root é o todo super-poderoso administrador da máquina… ele pode tudo!

Entre suas tarefas, estão delegar permissões para o usuários, configurar rede, firewall, desligar a máquina… então, quando estamos conectados ao sistema como root, é bom saber o que estamos fazendo, afinal de contas “grandes poderes trazem grandes responsabilidades”.

Nesse post, vou colocar um exemplo de arquivo de configuração do sudo, que é uma ferramenta que permite que usuários comuns executem um comando como se fosse outro usuário; geralmente tarefas do usuário root.

Através dessa ferramenta, é possível deixar registrado os comandos que determinado usuário executou como root e também as tentativas de acesso. Imagine a seguinte situação: você trabalha em uma equipe e todos utilizam o mesmo login para conectar no sistema. Todo mundo sabe a senha de root, e pode se conectar a qualquer momento. Um determinado dia, alguém conecta como root no sistema e apaga arquivos importantes…

Ok, primeiro vamos tentar consertar o estrago, mas vai ficar no ar a pergunta: “Quem foi?”

Em tempos onde a segurança é fator indispensável nas empresas, é fortemente recomendado que cada usuário que for acessar o sistema, possua o seu login e senha; deve ser configurado no sistema o sudo para auditar os comandos que o usuário executou ou tentou executar, etc.

Outra vantagem em usar o sudo, é que o usuário não precisa saber a senha de root, pois ao executar comandos usando o sudo, ele irá informar a sua senha, e não a senha do usuário root.

Lembrando que o sudo é apenas uma ferramenta… o administrador deve tomar outras medidas de segurança como por exemplo, manter o sistema atualizado, instalar o serviço NTP (Network Time Protocol) para que a data e hora estejam sempre atualizados, garantir que os usuários utilizem senhas fortes e não ‘emprestem’ a senha para terceiros, não grudem um post-it com a senha no monitor… entre outras coisas😀.

Falando sobre a configuração do sudo, essa é feita no arquivo /etc/sudoers. Para editar o arquivo, é utilizado o comando ‘visudo‘. Você pode usar o vi, vim, ou outro editor que lhe agrade… mas existem duas razões para utilizar o comando visudo e não um outro editor de textos:

  1. A edição do arquivo sudoers fica travada para outros usuários – isto é, se você estiver editando o arquivo, evita que outro usuário faça alterações ao mesmo tempo.
  2. O arquivo sudoers tem sua sintaxe; com o visudo você edita com a sintaxe correta, e, se houver algum erro, você será notificado.

Alterações no /etc/sudoers:

# Defaults specification
## Logging – interessante para o sistema registrar de forma organizada os acessos com sudo:
Defaults logfile=/var/log/sudolog

## As opcoes abaixo sao utilizadas para enviar email nos seguintes casos:
## mail_no_user = usuario nao esta na lista do sudo e tenta executar algum comando
## mail_no_perms = usuario esta na lista do sudo e tenta executar algum comando que nao consta na lista
## mail_badpass = usuario esta na lista do sudo e digita a senha incorretamente
## mail_to = email que recebera os alertas

Defaults mail_no_user
Defaults mail_no_perms
Defaults mail_badpass
Defaults mailto = ivani@nix.com.br

## Exigir que o usuário tenha um terminal na máquina e não execute sudo remotamente:
Defaults    requiretty

## Redefine o ambiente para conter somente o LOGNAME, MAIL, SHELL, USER, usuário e as variáveis SUDO_. As demais variáveis no ambiente do usuário que correspondem as que estão na lista de env_keep serão adicionadas.
Defaults    env_reset
Defaults    env_keep = “COLORS DISPLAY HOSTNAME HISTSIZE INPUTRC KDEDIR \
LS_COLORS MAIL PS1 PS2 QTDIR USERNAME \
LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION \
LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC \
LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS \
_XKB_CHARSET XAUTHORITY”

## Lista de usuários que irão utilizar o sudo.
User_Alias      FAMILY = bridap, sheikt, vanap

# Cmnd alias specification
## Lista de comandos que os usuários poderão executar utilizando o sudo
Cmnd_Alias      CM_FAMILY = /usr/bin/apt-get update, /usr/bin/tail -n[0-9]* -f /var/log/*, /usr/bin/crontab -l, /sbin/iptables, /bin/su

# User privilege specification
## Especifica privilegios para um determinado usuário. No caso, foi mantido o próprio root com todos privilégios.
root    ALL=(ALL) ALL

## Especifica privilégios (comando) para usuários que fazem parte da lista GR_CPLEXSUP
GR_FAMILY     ALL=(root)   CM_FAMILY

As configurações acima limitam o usuário executar apenas alguns comandos como root. Uma outra alternativa, é a que é usada pelo Ubuntu. O primeiro usuário cadastrado na máquina, entra no grupo admin… Os demais usuários são comuns… para torná-los administradores, basta inserir os usuários no grupo admin.

A linha para incluir no arquivo sudoers fica assim:

%admin ALL=(ALL) ALL

Comandos interessantes:

  • Listar as permissões de sudo para o usuário logado:

# sudo -l

  • Listar a versão do sudo, opções default e as variáveis de ambiente:

# sudo -V

  • Listar todas opções dispníveis para utilizar com a linha ‘Defaults’:

# sudo -L

Referências:

0 Responses to “Comando sudo”



  1. Deixe um comentário

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s




Follow Nix on WordPress.com
outubro 2010
S T Q Q S S D
« set   nov »
 123
45678910
11121314151617
18192021222324
25262728293031

Flickr Photos

Fast-flying Falcon

Mais fotos

%d blogueiros gostam disto: