sudoer não permitindo somente ALL como comandos para o usuário em alguns sistemas

0

Estou vendo um comportamento estranho relacionado ao sudo em um conjunto específico de sistemas, mas não em outros. Não tenho certeza se há alguma alteração de configuração específica necessária aqui, o que está faltando.

A configuração do sudoer é para habilitar usuários não-root (usei o testuser no exemplo abaixo) para instalar e configurar os pacotes do produto. O sistema operacional é o SUSE 12.

A seguir, o comportamento visto no cenário problemático:

1.) Inicialmente, quando os sudoers não estão configurados, obtemos algo assim:

# sudo -l -U testuser
User testuser is not allowed to run sudo on <node>.

2.) Em seguida, se criarmos o arquivo /etc/sudoers.d/prodtest_install:

Cmnd_Alias PROD_NODEKITS = /usr/bin/zypper --non-interactive --repo local --no-gpg-checks install org_prod_test.rpm, \
/usr/bin/zypper --non-interactive --repo local --no-gpg-checks install org_prod_pkg1.rpm, \
/usr/bin/zypper --non-interactive --repo local --no-gpg-checks install org_prod_pkg2.rpm, \
/usr/bin/zypper --non-interactive --repo local --no-gpg-checks install pkg3.rpm
Cmnd_Alias PROD_NODESETUP = /opt/org/prod/test/bin/prod-setup
testuser ALL=(root) NOPASSWD: PROD_NODEKITS
testuser ALL=(root) NOPASSWD: PROD_NODESETUP
Defaults!PROD_NODEKITS !requiretty
Defaults!PROD_NODESETUP !requiretty

Ainda vemos algo como:

# sudo -l -U testuser
User testuser is not allowed to run sudo on <node>.

testuser também não é capaz de usar nenhum dos comandos acima: ie. diga:

# sudo /usr/bin/zypper --non-interactive --repo local --no-gpg-checks install pkg3.rpm

não funciona e pede senhas de usuários e, mesmo se digitarmos senhas, o comando não passa.

3.) Mas, se adicionarmos 2 linhas extras "testuser ALL = (root) NOPASSWD: ALL" e "testuser ALL = (ALL) ALL" para permitir todos os comandos em /etc/sudoers.d/prodtest_install:

Cmnd_Alias PROD_NODEKITS = /usr/bin/zypper --non-interactive --repo local --no-gpg-checks install org_prod_test.rpm, \
/usr/bin/zypper --non-interactive --repo local --no-gpg-checks install org_prod_pkg1.rpm, \
/usr/bin/zypper --non-interactive --repo local --no-gpg-checks install org_prod_pkg2.rpm, \
/usr/bin/zypper --non-interactive --repo local --no-gpg-checks install pkg3.rpm
Cmnd_Alias PROD_NODESETUP = /opt/org/prod/test/bin/prod-setup
testuser ALL=(root) NOPASSWD: PROD_NODEKITS
testuser ALL=(root) NOPASSWD: ALL
testuser ALL=(ALL) ALL
testuser ALL=(root) NOPASSWD: PROD_NODESETUP
Defaults!PROD_NODEKITS !requiretty
Defaults!PROD_NODESETUP !requiretty

Então, vemos algo assim:

# sudo -l -U testuser
Matching Defaults entries for testuser on <node>:
    always_set_home, secure_path=/usr/sbin\:/usr/bin\:/sbin\:/bin, env_reset, env_keep="LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION
    LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_TIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE",
    !insults

Runas and Command-specific defaults for testuser:
    Defaults!/opt/org/prod/test/bin/prod !requiretty
    Defaults!/usr/bin/zypper --non-interactive --repo local --no-gpg-checks install org_prod_test.rpm, /usr/bin/zypper --non-interactive
    --repo local --no-gpg-checks install org_prod_pkg1.rpm, /usr/bin/zypper --non-interactive --repo local --no-gpg-checks install
    org_prod_pkg2.rpm, /usr/bin/zypper --non-interactive --repo local --no-gpg-checks install pkg3.rpm !requiretty
    Defaults!/opt/org/prod/test/bin/prod-setup !requiretty

User testuser may run the following commands on <node>:
    (root) NOPASSWD: ALL
    (ALL) ALL

Não sei por que comandos específicos não estão sendo listados, assim como não estou trabalhando com o sudo. Este sistema também não está tendo o /etc/sudo.conf, que pode elimina o uso de um plugin sudo diferente.

No entanto, se eu adicionar o /etc/sudoers.d/prodtest_install como fornecido acima em outros sistemas locais de teste do SUSE 12 não há problema e vejo as seguintes linhas extras listadas em "sudo -l -U testuser":

User testuser may run the following commands on <local_node>:
    (root) NOPASSWD: /usr/bin/zypper --non-interactive --repo local --no-gpg-checks install org_prod_test.rpm, /usr/bin/zypper
        --non-interactive --repo local --no-gpg-checks install org_prod_pkg1.rpm, /usr/bin/zypper --non-interactive --repo local --no-gpg-checks
        install org_prod_pkg2.rpm, /usr/bin/zypper --non-interactive --repo local --no-gpg-checks install pkg3.rpm
    (root) NOPASSWD: /opt/org/prod/test/bin/prod-setup

Existe alguma coisa que precisa ser configurada de forma diferente no sistema problemático / shoudl eu verifico alguma coisa?

Obrigado e cumprimentos calorosos, Prasad

    
por SG Prasad 18.11.2018 / 08:27

0 respostas

Tags