Vamos a um resumo do sudoers.
1 - O que
é sudoers?
Executando o comando "man sudo" a primeira linha do que é a aplicação é retornado 'sudo, sudoedit — execute a command as another user" resumindo, com o sudoers configurado conseguimos executar qualquer comando como se fossemos outro usuário.
Executando o comando "man sudo" a primeira linha do que é a aplicação é retornado 'sudo, sudoedit — execute a command as another user" resumindo, com o sudoers configurado conseguimos executar qualquer comando como se fossemos outro usuário.
2 - Como é realizado a sua
configuração?
Dentro de nossos servidores linux temos o arquivo /etc/sudoers que contém toda a configuração do sudo para editar o arquivo devemos usar o visudo, que valida as sintaxes que estão sendo alteradas/adicionadas, evitando assim "DEDADAS"
Dentro de nossos servidores linux temos o arquivo /etc/sudoers que contém toda a configuração do sudo para editar o arquivo devemos usar o visudo, que valida as sintaxes que estão sendo alteradas/adicionadas, evitando assim "DEDADAS"
3 - Configurando o sudoers
O arquivo de configuração do sudo é o /etc/sudoers,
onde se encontra as permissões e usuários que poderam executar algum
comando.
Geralmente, em algumas distros, este arquivo é protegido conta edição, existindo um comando exclusivo para manipulação, o comando visudo. O qual deve-se utilizar para edição do sudo.
Com o comando sudo pode-se delegar autoridade para execução de comandos ou coleção de comandos exclusivos a um usuário especifico ou a um grupo de usuários.
OBS: O arquivo de configuração /etc/sudoers deve ser editado unicamente pelo comando *'visudo'.*
Com o sudo o administrador pode especificar que um determinado usuário só poderá executar um comando com status administrativo de um host específico.
Host Aliases:
Pode definir alias para grupos de máquinas ou para host específico.
Exemplos:
Host_Alias FILESERVERS
= fs1, fs2 # com dns local
Host_Alias MAILSERVERS
= 10.0.0.1, 10.1.1.1
Host_Alias SERVERS
= 10.0.0.2, dns, firewall, dhcp, www
User Aliases:
Pode definir alias para grupos de usuários ou para um usuário específico. Inclusive com informações oriundas de LDAP, NIS, AD e arquivos de configuração de Linux
Exemplos:
User_Alias ADM = %groupname
%administradores
User_Alias ADMINS = ricardobn,
ricardo.brito
User_Alias WEBMASTERS = pedro,
rodrigo, eliana
Command Aliases:
Pode definir alias para grupos de comandos ou para um comando específico.
Cmnd_Alias DUMPS
= /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,\
/usr/sbin/restore,
/usr/sbin/rrestore
Cmnd_Alias KILL
= /usr/bin/kill
Cmnd_Alias PRINTING
= /usr/sbin/lpc, /usr/bin/lprm
Cmnd_Alias SHUTDOWN
= /usr/sbin/shutdown
Cmnd_Alias HALT
= /usr/sbin/halt
Cmnd_Alias REBOOT
= /usr/sbin/reboot
Cmnd_Alias SHELLS
= /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \
/usr/local/bin/tcsh,
/usr/bin/rsh, \
/usr/local/bin/zsh
Cmnd_Alias SU
= /usr/bin/su
Subgrupo para administração de rede:
Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping,
/sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial,
/sbin/iwconfig, /sbin/mii-tool
Subgrupo para Instalação e gerenciamento de software:
Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum
Subgrupo para administração de serviços:
Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig
Subgrupo para administração de atualização da base de dados local:
Cmnd_Alias LOCATE = /usr/sbin/updatedb
Subgrupo para administração dos dispositivos de bloco:
Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted,
/sbin/partprobe, /bin/mount, /bin/umount
Subgrupo para administração para Delegação de permissões:
Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod,
/bin/chgrp
Subgrupo para administração de Processos:
Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill,
/usr/bin/killall
Subgrupo para administração de Drivers:
Cmnd_Alias DRIVERS = /sbin/modprobe
4 - Modo Avançado
Delegação de autoridade:
É aconselhável desabilitar o *"ssh hostname sudo <cmd>"*, porque executando o ssh desta maneira será apresentado a senha em claro. Em vez disto execute *"ssh -t hostname sudo <cmd>"*
Esta é a parte principal, que habilita o que o usuário pode executar e em que máquina. O arquivo /etc/sudoers pode ser compartilhado entre múltiplos sistemas para que se tenha efeito.
Sintaxe:
user MACHINE=COMMANDS
Seção de Comandos:
Permite ao usuário root executar qualquer comando de qualquer lugar;
root ALL=(ALL) ALL
Permite aos membros do grupo 'sys' executarem todos os comandos especificados neste alias:
%sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
Permite aos membros do grupos wheel executarem todos os comandos:
%wheel ALL=(ALL) ALL
Permite aos membros do grupos wheel executarem todos os comandos sem a necessidade de senhas:
%wheel ALL=(ALL) NOPASSWD: ALL
Permite a todos os membros do grupo 'users' executarem os comandos mount e umount sobre o cdrom como superusuário:
%users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
Permite a todos os membros do grupo 'users' executar o comando 'shutdown':
%users localhost=/sbin/shutdown -h now
Permite a todos os usuários listados no alias 'ADMINS' executem comandos como superusuários sem a necessidade de senhas.
ADMINS ALL=(ALL) NOPASSWD: ALL
Permite as usuários listados no alias 'ADM' executarem os comandos listados em 'STORAGE' nos host de 'FILESERVERS' sem a necessidade de senhas:
ADM FILESERVERS=NOPASSWD: STORAGE
Permite ao usuário 'ricardo.brito' executar os comandos kill e iptables na máquina 10.1.1.1, entretanto o comando iptables ele pode executar sem senha:
ricardo.brito 10.1.1.1 = NOPASSWD:/bin/iptables , PASSWD: /bin/kill
Permite ao usuário 'ricardo.brito' executar o comando 'passwd' para modificar a senha dos usuários nos servidores de email 'MAILSERVERS', exceto a senha do root:
ricardo.brito MAILSERVERS = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root
Proíbe ao usuário 'john' executar o comando 'su -', 'su - root' ou 'su root' na máquina 'penta':
john penta = /usr/bin/su [!-]*, !/usr/bin/su *root*
Para qualquer máquina no Host_Alias SERVERS o usuário jill pode executar qualquer comando do diretórios /usr/bin/ exceto os comandos descritos nos Cmnd_Aliases 'SU' e 'SHELLS':
jill SERVERS = /usr/bin/, !SU, !SHELLS
No host www, qualquer usuário do User_Alias WEBMASTERS, pode qualquer comando como usuário (www) ou apenas o 'su www'.
WEBMASTERS www = (www) ALL, (root) /usr/bin/su www
Os usuários do grupo de rede secretaries podem gerenciar as impressoras bem como adicionar e remover usuários em todos os hosts.
+secretaries ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser
O usuário 'jen' pode executar qualquer comando, exceto nos servidores do Host_Alias SERVERS:
jen ALL, !SERVERS = ALL
# O usuários do grupo 'users' podem executar os comandos 'STORAGE' nos hosts 'FILESERVERS':
%users FILESERVERS=STORAGE
É aconselhável desabilitar o *"ssh hostname sudo <cmd>"*, porque executando o ssh desta maneira será apresentado a senha em claro. Em vez disto execute *"ssh -t hostname sudo <cmd>"*
Esta é a parte principal, que habilita o que o usuário pode executar e em que máquina. O arquivo /etc/sudoers pode ser compartilhado entre múltiplos sistemas para que se tenha efeito.
Sintaxe:
user MACHINE=COMMANDS
Seção de Comandos:
Permite ao usuário root executar qualquer comando de qualquer lugar;
root ALL=(ALL) ALL
Permite aos membros do grupo 'sys' executarem todos os comandos especificados neste alias:
%sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS
Permite aos membros do grupos wheel executarem todos os comandos:
%wheel ALL=(ALL) ALL
Permite aos membros do grupos wheel executarem todos os comandos sem a necessidade de senhas:
%wheel ALL=(ALL) NOPASSWD: ALL
Permite a todos os membros do grupo 'users' executarem os comandos mount e umount sobre o cdrom como superusuário:
%users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom
Permite a todos os membros do grupo 'users' executar o comando 'shutdown':
%users localhost=/sbin/shutdown -h now
Permite a todos os usuários listados no alias 'ADMINS' executem comandos como superusuários sem a necessidade de senhas.
ADMINS ALL=(ALL) NOPASSWD: ALL
Permite as usuários listados no alias 'ADM' executarem os comandos listados em 'STORAGE' nos host de 'FILESERVERS' sem a necessidade de senhas:
ADM FILESERVERS=NOPASSWD: STORAGE
Permite ao usuário 'ricardo.brito' executar os comandos kill e iptables na máquina 10.1.1.1, entretanto o comando iptables ele pode executar sem senha:
ricardo.brito 10.1.1.1 = NOPASSWD:/bin/iptables , PASSWD: /bin/kill
Permite ao usuário 'ricardo.brito' executar o comando 'passwd' para modificar a senha dos usuários nos servidores de email 'MAILSERVERS', exceto a senha do root:
ricardo.brito MAILSERVERS = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root
Proíbe ao usuário 'john' executar o comando 'su -', 'su - root' ou 'su root' na máquina 'penta':
john penta = /usr/bin/su [!-]*, !/usr/bin/su *root*
Para qualquer máquina no Host_Alias SERVERS o usuário jill pode executar qualquer comando do diretórios /usr/bin/ exceto os comandos descritos nos Cmnd_Aliases 'SU' e 'SHELLS':
jill SERVERS = /usr/bin/, !SU, !SHELLS
No host www, qualquer usuário do User_Alias WEBMASTERS, pode qualquer comando como usuário (www) ou apenas o 'su www'.
WEBMASTERS www = (www) ALL, (root) /usr/bin/su www
Os usuários do grupo de rede secretaries podem gerenciar as impressoras bem como adicionar e remover usuários em todos os hosts.
+secretaries ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser
O usuário 'jen' pode executar qualquer comando, exceto nos servidores do Host_Alias SERVERS:
jen ALL, !SERVERS = ALL
# O usuários do grupo 'users' podem executar os comandos 'STORAGE' nos hosts 'FILESERVERS':
%users FILESERVERS=STORAGE
Nenhum comentário:
Postar um comentário