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

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

[ Hits: 12.125 ]

 


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

Instalação de placas de vídeo NVIDIA GeForce 9500 GT, Dell E1911b AMD e de quebra o GNOME

Configurando diretório com os dados de /home

Montar ISO no Linux

Criando atalhos no menu em dois métodos no Debian7

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

Leitura recomendada

Aumentar tamanho de fonte e tela no terminal de comando Debian 8 do VMware

Gravando ajuste de volume de forma definitiva

Atalhos no teclado no LXDE (Openbox)

Instalação do Arch em uma BIOS UEFI

Disquete no Ubuntu 8.10

  

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