Como configurar sudoers para permitir a execução do comando sudo sob outro grupo e nome de usuário?

1

Como configurar o sudoers para evitar a mensagem de erro Sorry, user ****** is not allowed to execute .

Antecedentes

Para o propósito de testar como um script python em uma conta de daemon de usuário e grupo menos privilegiada, é necessário executar:

$ sudo -u _denyhosts -g _denyhosts python /usr/local/bin/denyhosts.py 
-c /usr/share/denyhosts/denyhosts.cfg -n --purge --sync --verbose

O resultado é:

Sorry, user ****** is not allowed to execute 
'/usr/bin/python /usr/local/bin/denyhosts.py -c /usr/share/denyhosts/denyhosts.cfg 
-n --purge --sync --verbose' as _denyhosts:_denyhosts on ***.***.***.

O palpite é que esse comando falha devido a uma configuração extra necessária em sudoers .

$ sudo -l
Matching Defaults entries for *** on this host:
    editor=/usr/bin/nano, env_reset, env_keep+=BLOCKSIZE, env_keep+="COLORFGBG
    COLORTERM", env_keep+=__CF_USER_TEXT_ENCODING, env_keep+="CHARSET LANG
    LANGUAGE LC_ALL LC_COLLATE LC_CTYPE", env_keep+="LC_MESSAGES LC_MONETARY
    LC_NUMERIC LC_TIME", env_keep+="LINES COLUMNS", env_keep+=LSCOLORS,
    env_keep+=SSH_AUTH_SOCK, env_keep+=TZ, env_keep+="DISPLAY XAUTHORIZATION
    XAUTHORITY", env_keep+="EDITOR VISUAL", env_keep+="HOME MAIL"

User *** may run the following commands on this host:
    (ALL) ALL

Já tentou adicionar o grupo _denyhosts a sudoers executando sudo visudo e inserindo a linha:

%_denyhosts    ALL=(ALL) ALL

Salvar e tentar novamente não melhora.

    
por Pro Backup 10.04.2012 / 00:07

2 respostas

0

A linha %_denyhosts ALL=(ALL) ALL significa que os usuários no grupo _denyhosts têm permissão para executar qualquer comando como qualquer usuário. Não é isso que você está tentando fazer: é necessário permitir que o usuário ****** execute comandos como o usuário _denyhosts e o grupo _denyhosts . Algo como:

****** ALL = (_denyhosts : _denyhosts) ALL
    
por 10.04.2012 / 02:06
0

Você precisará assegurar que, mesmo que usuários em _denyhosts tenham sido adicionados ao arquivo sudoers, que os usuários que você quer que possam executar este comando sejam adicionados ao grupo _denyhosts em /etc/group.

$ sudo vi /etc/group
*snip*
_denyhosts:x:###:username1,username2,username3

Salve o arquivo 'group' e tente novamente.

    
por 10.04.2012 / 01:52