Comandos do Linux e Unix: Sistema; Processos; Sistema de Arquivos; Rede; SSH SCP; VPN com SSH; RSYNC; SUDO; Arquivos Encriptados; Partições Encriptadas; Certificados SSL; CVS; SVN; Comando Úteis; Instalar Software; Converter Mídia; Impressão; Banco de Dados; Quota de Disco; Shells; Scripting; Programação

SUDO

Sudo é um modo padrão para conceder aos usuários alguns direitos administrativos sem fornecer a senha de root. Sudo é muito util em um ambiente multiusuário com um mescla de servidores e workstations. Simplesmente chame o comando com o sudo:

# sudo /etc/init.d/dhcpd restart            # Rode o script rc como root
    # sudo -u sysadmin whoami                   # Rode o cmd como um outro usuário

Configuração

Sudo é configurado em /etc/sudoers e deve ser editado comente com o visudo. A syntax básica é (as listas são separadas por virgula):

user hosts = (runas) commands          # Em /etc/sudoers
  • users um ou mais usuários ou %group (como %wheel) para ganhar os direitos
  • hosts lista de hosts (ou ALL)
  • runas lista de usuários (ou ALL) que a regra de comando pode ser rodado como. É cercado em ( )!
  • commands lista de comandos (or ALL) que serão rodados como root ou como (runas)

Adicionalmente aquelas palavras chave pode ser definidas como alias, ela são chamadas User_Alias, Host_Alias, Runas_Alias e Cmnd_Alias. Isso é útil para instalações maiores. Aqui um exemplo sudoers:

# cat /etc/sudoers
    # Host aliases são subnets ou hostnames.
    Host_Alias   DMZ     = 212.118.81.40/28
    Host_Alias   DESKTOP = work1, work2

    # User aliases é uma lista de usuários que podem ter os mesmos direitos
    User_Alias   ADMINS  = colin, luca, admin
    User_Alias   DEVEL   = joe, jack, julia
    Runas_Alias  DBA     = oracle,pgsql

    # Comando aliases define o caminho completo de uma lista de comandos
    Cmnd_Alias   SYSTEM  = /sbin/reboot,/usr/bin/kill,/sbin/halt,/sbin/shutdown,/etc/init.d/
    Cmnd_Alias   PW      = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root # Não pwd do root!
    Cmnd_Alias   DEBUG   = /usr/sbin/tcpdump,/usr/bin/wireshark,/usr/bin/nmap
# As reais regras
    root,ADMINS  ALL     = (ALL) NOPASSWD: ALL    # ADMINS podem fazer qualquer coisa com/ou um senha.
    DEVEL        DESKTOP = (ALL) NOPASSWD: ALL    # Desenvolvedores tem total direito nos desktops
    DEVEL        DMZ     = (ALL) NOPASSWD: DEBUG  # Desenvolvedores podem debugar os servidores DMZ.

    # Usuário sysadmin pode mexer por aí nos servidores DMZ com alguns comandos.
    sysadmin     DMZ     = (ALL) NOPASSWD: SYSTEM,PW,DEBUG
    sysadmin     ALL,!DMZ = (ALL) NOPASSWD: ALL   # Pode fazer qualquer coisa fora do DMZ.
    %dba         ALL     = (DBA) ALL              # Grupo dba pode rodar como usuário database.

    # qualquer um pode montar/desmontar um cd-rom nas máquinas desktop
    ALL          DESKTOP = NOPASSWD: /sbin/mount /cdrom,/sbin/umount /cdrom

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *