Sudoers 1.8.12 - Parte IV - Manual

Esse artigo é parte de uma série de artigos sobre sudo. Essa é a quarta parte do manual Sudoers 1.8.12 como encontrado no Slackware Current.

[ Hits: 5.542 ]

Por: Perfil removido em 18/09/2015


Sudoers 1.8.12 - Parte IV - Manual



Opções de Sudoers

O comportamento de sudo pode ser modificado por uma entrada padrão (Default_Entry) em uma linha, como explicado mais adiante. A lista com todos os parâmetros suportados, com seu valor padrão e agrupada por tipo é apresentada a seguir.

Etiquetas booleanas:
  • always_set_home - Se definida, sudo configurará a variável de ambiente HOME para o valor do diretório casa do usuário alvo (normalmente root, se a opção -u não for utilizada). Isso efetivamente significa que a opção -H é sempre implícita. Observe que HOME é configurado quando env_reset está ativa; deste modo, always_set_home só é eficaz para configurações onde env_reset está desativado ou HOME está presente em env_keep. O padrão é desligada.
  • authenticate - Se configurada, os usuários devem autenticar a si mesmos através de uma senha (ou outro método) antes de executar um comando com sudo. O padrão pode ser sobrescrito por PASSWD e NOPASSWD. O padrão é ligada.
  • closefrom_override - Se configurada, permite que o usuário utilize a opção "-C" de sudo, que sobrescreve o ponto de partida padrão a partir do qual sudo começa a fechar os descritores de arquivos. O padrão é desligada.
  • compress_io - Se configurada, e sudo for configurado para registrar log a partir de comandos de entrada ou saída, os logs de I/O são comprimidos por zlib. Essa opção é ativada por padrão, por isso sudo SEMPRE deve ser compilado com suporte para zlib.
  • use_netgroups - Se configurada, grupos de rede (prefixados com " + ") podem ser utilizados no lugar de um usuário ou host. Em uma configuração baseada em LDAP, grupos de rede causam um impacto negativo no desempenho de um servidor devido ao excessivo conjunto de combinações necessárias. Caso o uso de grupos de rede não seja imperativo, é recomendado desativar para melhorar o desempenho do servidor LDAP. O padrão é ligada.
  • exec_background - Por padrão, sudo executa um comando como um processo em segundo plano enquanto sudo, em si, fica no primeiro plano. Quando a etiqueta exec_background está ativa e o o comando é executado em uma pty (devido ao registro de log de I/O ou a etiqueta use_pty), o comando será executado em segundo plano. Tentativas de leitura do controle desse terminal (ou alterações em seus valores) resultará em um comando suspenso por SIGTTIN (ou SIGTTOU no caso de reconfigurações no terminal).

    Se isso ocorrer quando sudo estiver em primeiro plano, o comando poderá controlar o terminal e continuar sua execução em segundo plano sem qualquer interação (intervenção?) requerida. A vantagem de inicialmente executar um comando em segundo plano é que sudo não necessita ler do terminal a menos que o comando explicitamente peça isso. Por outro lado, qualquer entrada no terminal deve ser passada para o comando previamente, se requerida ou não, pois não é possível saber se o comando está requerendo ou não. Isto é diferente do comportamento histórico em sudo ou quando a execução não ocorre em uma pty.

    Para que esse comportamento funcione perfeitamente, o sistema operacional deve suportar o reinício automático de chamadas de sistema. Infelizmente, nem todos os sistemas operacionais fazem isso por padrão, ou se não fazem direito, causam um bug. Por exemplo, MAC OS X falha para as chamadas tcgeatattr() e tcsetattr().

    Além disto, por causa desse comportamento depender de comandos de parada como SIGTTIN ou SIGTTOU, programas que capturam esses sinais e suspendem a si mesmo com o registro de um sinal diferente (SIGSTOP) não vão automaticamente para primeiro plano. Esse comportamento já foi observado em algumas versões de su (1) no Linux. O padrão é desativado. Essa configuração somente é suportada por sudo 1.8.7 ou superior.

  • env_editor - Se configurada, visudo utilizará o valor definido em EDITOR ou VISUAL. Observe que essa flag quando mal configurada cria um pitfall que permite executar um comando sem estar logado. A alternativa segura é colocar uma lista (separada por dois-pontos) na variável editor. Desativada por padrão.
  • env_reset - Se configurada, sudo executará um comando em um ambiente mínimo. São incluídas as variáveis: TERM, PATH, HOME, MAIL, SHELL, LOGNAME, USER, USERNAME e SUDO_*. Quaisquer variáveis na chamada de ambiente que combine com env_keep e env_check são adicionadas, seguidas por quaisquer variáveis presentes em env_file (se houver). O conteúdo padrão de env_keep e env_check são exibidos quando sudo é executado como root com a opção "-V".

    Se a opção secure_path estiver ativa, esse valor é utilizado para definir o PATH. O padrão é ativada.

    - fast_glob - Normalmente, sudo usa glob (3) no estilo do shell quando está combinando nomes de caminhos (pathnames). Entretanto, uma vez que acessar o sistema de arquivos (comportamento de glob(3)) é lento essa opção pode causar lentidão para algumas combinações que usam sistemas de arquivo via rede. A opção fast_glob faz com que sudo use fnmatch (3) que não acessa o sistema de arquivos para fazer suas combinações. A desvantagem é que ele não é capaz de combinar nomes de caminhos relativos (../bin/ls, por exemplo). Isso tem implicações na segurança de combinações que usam o operador de negação (!), pois isso cria uma escapada ou passagem secundária (bypass). Deste modo, essa opção não deve ser utilizada quando sudoers tiver regras que contenham a negação de caminhos junto ao uso de englobamento (glob). O padrão é desativado.

  • fqdn - Configure essa etiqueta se você precisa de nomes FQDN no seu arquivo sudoers (o nome local não contém o FQDN em alguns sistemas). Se você precisa de meu-host.meu-domínio.com.br e não de meu-host. Essa opção é efetiva se o nome canônico do host, retornado por getaddrinfo() ou gethostbyname() é FQDN. Por isso files deve preceder a bind em /etc/hosts. A ordem de resolução de nomes pode ser definida em /etc/nsswitch.conf, /etc/netsvc.conf, /etc/hosts.conf ou, em alguns casos, /etc/resolv.conf. Um erro comum é não declarar o nome canônico em /etc/hosts primeiro. Os nomes seguintes são alias, e sudo não usa alias. Quando a resolução de nomes não usa /etc/hosts ou você não tem os registros que precisa, uma requisição de DNS é gerada. Isso torna sudo inutilizável se seu servidor DNS não puder ser alcançado. Observe que DNS não fornece todos os alias em CNAME. O padrão é desativado.
  • ignore_dot - Se configurado, sudo ignora o ponto (".") denotando o diretório corrente no PATH. O padrão é desativado. Essa opção não modifica o PATH.
  • ignore_local_sudoers - Se configurado via LDAP, a análise (parsing) de /etc/sudoers não será feita. No ambiente empresarial, é preciso prevenir o uso de sudoers locais para garantir que apenas LDAP está autorizando. Isso pode bloquear um atacante que tenta adicionar regras em /etc/sudoers, pois quando essa opção está ativa esse arquivo sequer existe. O padrão é desativado.
  • insults - Se configurada, envia mensagens para os usuários que entram com uma senha incorreta em sudo. O padrão é desativada.
  • log_host - Se configurada, o nome do host será logado em um arquivo (não-syslogd). O padrão é desativada.
  • log_input - Se configurada, sudo executará o comando em um pseudo terminal e registra (log) toda as digitações. Se a entrada padrão não estiver conectada para esse terminal, por causa de um redirecionamento de I/O (um pipe), a entrada é capturada e armazenada em um arquivo separado. O padrão é desativado. O registro de entradas é feito no diretório definido em iolog_dir (/var/log/sudo-io, por padrão) usando um ID de sessão único, prefixado por "TSID=". A opção iolog_file pode ser utilizada para controlar o formato do ID de sessão.

    Observe que uma entrada de usuário pode conter informações sensíveis como senhas (mesmo que não sejam ecoadas no vídeo), e elas serão armazenadas em um log não encriptado. Na maioria dos casos, tudo que você precisa é da opção log_output para controlar melhor a segurança.

  • log_output - Se configurada, sudo executará o comando em um pseudo terminal e registra em log TODAS as saídas enviadas para o vídeo. Funciona como o comando script(1). Se a saída padrão ou de erro não estiverem conectadas ao terminal (pipes) essas saídas são armazenadas em um arquivo a parte. O padrão é desativada. O diretório padrão é definido por iolog_dir (/var/log/sudo-io, por padrão) usando uma ID de sessão com o prefixo "TSID=". Esses registros podem ser consultados com o utilitário sudoreplay (8).
  • log_year - Se configurado, o ano (4 dígitos) será logado em um arquivo de sudo (não-syslog). Desativada por padrão.
  • long_otp_prompt - Quando validando uma senha OTP (One Time Password) um esquema como S/Key ou OPIE, um prompt de duas linhas é usado para tornar mais fácil cortar e colar o desafio (challenge) para uma janela local. Desativada, por padrão.
  • mail_always - envia um e-mail para o usuário definido em mailto a cada tentativa de uso de sudo. Em ambos os casos, sucesso ou fracasso, a mensagem pode ser enviada. Desativada por padrão.
  • mail_badpass - Envia um e-mail para o usuário definido em mailto se o usuário que invocou sudo errou a senha. Desativada, por padrão.
  • mail_no_perms - Se configurada, um e-mail é enviado para o usuário em mailto, se o usuário que invocou sudo é permitido usar sudo, mas o comando que ele está querendo não está liberado ou está explicitamente negado. O padrão é desativada.
  • mail_no_user - Se configurada, o e-mail será enviado para o usuário definido em mailto, se o usuário que invocou sudo não estiver em sudoers. O padrão é ativada.
  • noexec - Se configurada, todos os comandos executados via sudo irão se comportar como se NOEXEC estivesse ativa, a menos que sobrescrito por EXEC. O padrão é desativado.
  • pam_session - Em sistemas que usam PAM para autenticação, sudo cria uma nova sessão de PAM para o comando ser executado. Desativar pam_session pode ser necessário em versões antigas de PAM ou em sistemas onde PAM modifica os arquivos utmp ou wtmp, se a sessão PAM suportar ser desativada. Se o controle de sessão de PAM estiver desativado, o usuário fica sujeito a limitações de recursos definidas para o sistema operacional ou para o usuário. Se pam_session, pam_setcred e use_pty são DESATIVADAS e o log de I/O NÃO estiver configurado, sudo executa o comando diretamente como um processo filho. Por padrão, está habilitada. Essa etiqueta é suportada a partir da versão 1.8.7 de sudo.
  • pam_setcred - Em sistemas que usam PAM para autenticação, sudo tentará estabelecer as credenciais para o usuário alvo por omissão, se suportado pelo sistema de autenticação subjacente. Um exemplo são as credenciais de um tíquete Kerberos. Se pam_session, pam_setcred e use_pty são desativadas e o registo de log de I/O não estão configurados, sudo executará o comando diretamente em vez de rodar como um processo filho. Essa etiqueta somente é suportada por sudo 1.8.8 ou superior, o padrão é ativa.
  • passprompt_override - O prompt especificado por passprompt será utilizado somente se o prompt fornecido por um sistema como PAM combinar com a cadeira de caracteres "Password:". Se essa opção estiver ativa, esse prompt alternativo é sempre utilizado. O padrão é desativado.
  • path_info - Normalmente, sudo dirá ao usuário que o comando não pode ser encontrado no PATH. Administradores podem desativar isso para fornecer menos informações sensíveis. Isso pode gerar uma confusão, pois sudo informará que o usuário não possui permissão de execução desse comando. O padrão é ativada.
  • preserve_groups - Por padrão, sudo inicializa o vetor de grupos para a lista de grupos do usuário alvo (/etc/groups). Quando ativa, o vetor de grupos permanece inalterado. Entretanto, o ID real e o efetivo são definidos para os valores do usuário alvo. Desativada, por padrão.
  • pwfeedback - Por padrão, sudo lê a senha como a maioria dos programas em Unix, não retornando qualquer caractere até o usuário digitar o retorno (enter). Isso pode deixar alguns usuários confusos. Essa etiqueta modifica esse comportamento retornando um asterisco (ou outro caractere) enquanto o usuário digita a senha. O impacto na segurança é evidente, pois a um observador fica visível o número de caracteres da senha. O padrão é desativada.
  • requiretty - Se configurada, sudo somente executará o comando quando o usuário estiver logado em uma tty REAL. Deste modo, sudo somente pode ser executado em um login de sessão e não através de outros meios como scripts, cgi-bin ou cron(8). O padrão é desativado.
  • root_sudo - Se configurada, é permitido ao root executar sudo. Desativar essa opção evita que os usuários façam uma cadeia de comandos sudo para pegar um shell administrativo. A desvantagem é que desativando essa etiqueta root não poderá mais usar sudoedit. Essa opção não tem funções reais de segurança, sendo mantida por razões históricas. O padrão é ativada.
  • rootpw - Se configurada, sudo fornecerá um prompt pedindo a senha do root em vez da senha do usuário que invocou o comando. O padrão é desativado.
  • runaspw - Se configurada, sudo fornecerá um prompt para o usuário definido em runas_default (o padrão é root). O padrão é desativa.
  • set_home - Se ativada e sudo for invocado com a opção "-s", a variável HOME será ajustada para o diretório casa do usuário alvo (normalmente root, a menos que a opção "-u" seja utilizada). Isso faz com que a a opção "-s" torne implícita a opção "-H". Observe que HOME é realmente configurado quando env_reset é ativada, set_home só se torna efetiva para configurações onde env_reset está desativada ou HOME está presente em env_keep. O padrão é desativada.
  • set_logname - Normalmente, sudo configura o LOGNAME, USER e USERNAME no ambiente com os dados do usuário alvo. Todavia, alguns programas usam LOGNAME para definir a identidade real do usuário. Essa etiqueta muda esse comportamento padrão para atender esses programas. Isso é feito negando a opção set_logname. Se a opção env_reset está ativa, entradas em env_keep são sobrescritas pelo valor de set_logname. O padrão é ativada.
  • set_utmp - Quando ativada, sudo criará uma entrada em utmp (ou utmpx) no caso de um pseudo terminal ser alocado. O pty e alocado por sudo quando o log_input, log_output ou use_pty são ativadas. Por padrão, uma nova entrada será uma cópia de uma entrada anterior (se houver), com o tty, o tempo, o tipo e o PID atualizados. O padrão é ativada.
  • setenv - Permite ao usuário desativar env_reset através da linha de comando utilizando a opção -E. Adicionalmente, variáveis de ambiente configuradas via linha de comando são estão sujeitas as restrições impostas por env_check, env_delete ou env_keep. ATENÇÃO: somente usuários de extrema confiança deve ser permitido configurar variáveis desta forma. O padrão é desativada.
  • shell_noargs - Se configurada e sudo for invocado sem nenhum argumento age como a opção "-s" executando um shell como root (o shell definido em SHELL, se houver ou o shell listado em /etc/passwd para o usuário que invocou). O padrão é desativado.
  • stay_setuid - Normalmente, quando sudo executa um comando o ID real e o efetivo são configurados para o usuário alvo (root, por padrão). Essa opção muda o comportamento padrão deixando o UID do usuário que invocou sudo. Em outras palavras, isso faz sudo agir como se estivesse envelopado por setuid. Isso pode ser útil em sistemas que desativam funcionalidades potencialmente perigosas quando um programa é executado com setuid. Essa opção é efetiva somente em sistemas que suportam setreuid (2) ou setresuid (2). O padrão é desativada.
  • targetpw - Se configurada, sudo mostra um prompt para a senha do usuário especificado na opção -u, no lugar da senha do usuário que invocou sudo. Observe que essa etiqueta se opõe ao uso de uma UID que não está na base de dados de usuários (/etc/passwd). O padrão é desativada.
  • tty_tickets - Se configurada, usuários devem se autenticar em uma base por terminal (tty). Quando ativada, sudo usará um registro separado com uma estampa de tempo para cada tty. Quando desativada, um registro único é usado para todos as sessões de login. O padrão é ativada.
  • umask_override - Se configurada, sudo tentará configurar umask como definido no arquivo em sudoers sem modificação. Isso torna possível especificar um valor mais permissivo para umask em sudoers que o próprio valor definido para o usuário. Se essa etiqueta está ativada, sudo usará uma combinação (união) entre os dois valores de umask (o valor do usuário e o valor em sudoers). O padrão é desativado.
  • use_loginclass - Se configurada, sudo aplicará os valores especificados para o usuário alvo de acordo com sua classe (se existir). Esse parâmetro somente está disponível se sudo tiver suporte para "--with-logincap". O padrão é desativada.
  • use_pty - Se configurada, sudo executará o comando em um pseudo terminal mesmo se nenhum log de I/O estiver sendo feito (sic?). Um programa malicioso executado sob sudo poderia, em tese, bifurcar um processo em segundo plano que reteria o terminal do usuário, mesmo após o fim da execução do programa verdadeiro. (hum, teoria interessante!). Usar essa opção torna isso impossível. O padrão é desativada.
  • utmp_runas - Se configurada, sudo armazenará o nome do runas_user que atualizou os arquivos utmp ou utmpx. Por padrão, sudo armazena o nome do usuário que invocou sudo. O padrão é desativada.
  • visiblepw - Por padrão, sudo recusa a execução se o usuário entrar uma senha mas não é possível desativar o eco do terminal. Se visiblepw está definido, sudo solicita uma senha, mesmo que a mesma fique visível na tela. Isso torna possível executar coisas como "ssh nome-do-host sudo ls", pois, por padrão, ssh (1) não aloca um termina (tty) quando está executando um comando. O padrão é desativada.

    Próxima página

Páginas do artigo
   1. Sudoers 1.8.12 - Parte IV - Manual
   2. Etiquetas
Outros artigos deste autor

1º Fórum da Internet no Brasil

Atualizando o kernel do Slackware de forma segura, sem o famoso "kernel panic"

Pesquisa com slocate, locate e updatedb

Sistemas de arquivos - Conceitos básicos

Big Linux: A opção ideal para iniciantes

Leitura recomendada

Código Aberto já não é uma questão de gosto

Framework OSSIM - Open Source Security Information Management

Debian Sarge + Snort + MySQL + Acidlab + Apache

Single Honeypot

Ferramentas de detecção e NMAP

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts