PATH estranho quando usar sudoers via ldap

4

Eu tenho um ambiente de autenticação LDAP em funcionamento. O servidor LDAP está no Ubuntu 12.04 enquanto o cliente está no centos 6.4 máquinas. Recentemente eu configurei sudoers no LDAP seguindo este artigo link

Tudo funciona bem, exceto que o PATH é estranho ao usar o sudo para executar o comando.

Aqui está o caminho do sudo

# sudo printenv PATH
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Parece que todos os comandos listados no PATH mostrado acima podem ser executados, exceto em / bin. Por exemplo

# sudo which node
/usr/local/bin/node

# sudo which zip
/usr/bin/zip

# sudo which ip
/sbin/ip

# sudo which ls
which: no ls in ("/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin") #WTF??

# sudo ls /
sudo: ls: command not found

No entanto, ao usar o caminho completo para executar o comando em / bin, ele funciona.

# sudo /bin/ls /
bin  boot  dev  etc  home  lib  lib64  lost+found  media  mnt  NFS  opt  proc  root  sbin  selinux  srv  sys  tmp  usr  var    

Eu li Problemas com o sudo no caminho e Solucionando problemas de sudoers por meio do ldap , mas não sabemos o que está errado.

A entrada LDAP com a configuração PATH é a seguinte:

dn: cn=defaults,ou=SUDOers,dc=example.dc=com
objectClass: top
objectClass: sudoRole
cn: defaults
description: Default sudoOption's go here
sudoOrder: 1
sudoOption: env_reset
sudoOption: secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
    
por user1817188 27.12.2013 / 04:06

2 respostas

3

Eu cheguei ao mesmo problema hoje e acredito que a solução é simplesmente remover as aspas duplas da opção secure_path :

dn: cn=defaults,ou=SUDOers,dc=example.dc=com
objectClass: top
objectClass: sudoRole
cn: defaults
description: Default sudoOption's go here
sudoOrder: 1
sudoOption: env_reset
sudoOption: secure_path=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

Ao circundá-lo por aspas, como você pode ver no resultado de sudo printenv PATH , o PATH contém as próprias citações. Isso parece corresponder a um longo caminho engraçado, no qual os nomes dos diretórios contêm dois pontos - e não o que você quer ...

Sua resposta parece contornar o problema, provavelmente porque o cólon no final tem o significado especial de anexar algum caminho padrão. Experimente sudo printenv PATH para ver o que está acontecendo --- não funcionou no meu caso.

Com o LDIF que proponho acima, o que você obtém é o PATH :

$ sudo printenv PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
    
por 14.07.2015 / 01:36
2

Eu mesmo encontrei a solução, embora não saiba exatamente o motivo.

É bastante simples, adicione ":" ao final do caminho_configurado na entrada LDAP, corrige todo o problema.

secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:"
    
por 27.12.2013 / 12:27

Tags