Sudoers: Exemplos de uso e configuração da saída de log

Publicado por Wesley de Toledo Costa em 16/07/2012

[ Hits: 12.188 ]

 


Sudoers: Exemplos de uso e configuração da saída de log



A intenção desta dica é ajudar a entender algumas formas de utilização do sudo através de permissões específicas dadas aos usuários pelo sudoers.

Passo I: Criar o arquivo onde será escrito o log do sudoers. Em meu caso, preferi criá-lo em "/var/log":

sudo touch /var/log/sudo.log
$ sudo chown root.root /var/log/sudo.log


Passo II: Entre no diretório /etc:

cd /etc

Edite o sudoers, preferencialmente, através do comando visudo, mas pode ser usado qualquer editor limpo. Digite:

sudo visudo

Ou:

sudo gedit /etc/sudoers

Será aberto um arquivo semelhante ao que virá a seguir. Exemplo:

# /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.

Defaults    env_reset # Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification

root     ALL=(ALL) ALL
# Allow members of group sudo to execute any command after they have
# provided their password
# (Note that later entries override this, so you might need to move
# it further down)

%sudo ALL=(ALL) ALL
#includedir /etc/sudoers.d
# Members of the admin group may gain root privileges

%admin ALL=(ALL) ALL

Passo III: Editando o sudoers:

Abaixo, algumas mudanças de exemplo e o comentário no código para ajudar a entender.

Exemplo:

# /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.

Defaults     env_reset

# User alias specification: cria apelido para usar as regras de permissões para vários usuários sem ter que repetir a regra para todos
User_alias ADM = operacao, suporte01

# Cmnd alias specification: cria um apelido para determinado que usuário possa usar um grupo de comandos.
Cmnd_Alias COMANDO = /sbin/ifconfig, /bin/df, /bin/ps

# Usuários e seus privilégios
# sintaxe: usuário - host onde o usuário tem permissão para executar o comando – (com quais usuários pode operacionalizar o comando) – quais comando pode tem permissão de usar.
#usuario root e wesley terão permissão total

root ALL=(ALL) ALL
wesley ALL=(ALL) ALL

# os usuários operação e suporte01 poderão utilizar o mount ADM ALL=(ALL) /sbin/mount
#usuário estagiários poderão apenas desligar a máquina, mas não será necessário digitar a senha por causa NOPASSWD

estagiarios ALL=(ALL) NOPASSWD: /sbin/shutdown

# o usuário alfa poderá usar os comandos criados no Alias COMANDO
alfa ALL=(ALL) COMANDO

# Allow members of group sudo to execute any command after they have provided their password (Note that later entries override this, so you might need to move it further down)
%sudo ALL=(ALL) ALL

# Definir o arquivo de Log: a linha abaixo escreve os logs de tudo que foi utilizado com o comando sudo
Defaults logfile=/var/log/sudo.log

###FIM DO ARQUIVO


Exemplo do Log gerado

sudo more /var/log/sudo.log

Exemplo:
Jul 10 17:56:34 : wesley : TTY=pts/1 ; PWD=/var/log ; USER=root ;
     COMMAND=/usr/bin/apt-get update -y
Jul 10 18:00:49 : wesley : TTY=unknown ; PWD=/home/wesley ; USER=root ;
     COMMAND=/usr/sbin/synaptic --hide-main-window --non-interactive
     --parent-window-id 75497511 -o Synaptic::closeZvt=true --progress-str Please
     wait, this can take some time. --finish-str Update is complete
     --set-selections-file /tmp/tmpgEdgGm
Jul 10 18:36:12 : wesley : TTY=unknown ; PWD=/home/wesley ; USER=root ;
     COMMAND=/usr/sbin/synaptic --hide-main-window --non-interactive
     --parent-window-id 75497511 --update-at-startup
Jul 10 19:34:48 : wesley : TTY=pts/1 ; PWD=/etc ; USER=root ;
     COMMAND=/usr/bin/vi sudoers
Jul 10 19:35:26 : wesley : TTY=pts/1 ; PWD=/etc ; USER=root ; COMMAND=/usr/sbin/visudo
Jul 10 19:44:39 : wesley : TTY=pts/1 ; PWD=/etc ; USER=root ; COMMAND=/usr/sbin/visudo
Jul 10 20:20:51 : wesley : TTY=pts/1 ; PWD=/etc ; USER=root ; COMMAND=/usr/bin/clear
Jul 10 20:21:04 : wesley : TTY=pts/1 ; PWD=/etc ; USER=root ; COMMAND=/bin/more /var/log/sudo.log


Outras dicas deste autor

Instalar Acrobat Reader Ubuntu

Como desinstalar o NetBeans

Como habilitar Xmanager ou Xview no Fedora Core 5, 6 e CentOS

Microsoft Office 2007 funcionando perfeitamente com Wine

Criando atalhos no menu em dois métodos no Debian7

Leitura recomendada

Resolvendo problema com teclado ABNT2 no Debian Sarge

Debian Mirror Redirector

Configurando o cron para enviar e-mail de output para o root (Debian)

Suporte a ponto (.) em login de usuário no Conectiva 10

Sistema Personalizado - Recuperação após formatação

  

Comentários
[1] Comentário enviado por marcelo.castro.l em 17/07/2012 - 08:34h

Muito boa essa dica.

Estava com problemas ao tentar executar um comando web que necessitava que este fosse com super usuario.

Bastei editar esse arquivo conforme a dica e tudo correu as mil maravilhas.

Muito obrigado!



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts