2009-07-09 5 views
1

J'ai rencontré un problème que je n'avais jamais vu auparavant et que je ne peux pas expliquer exactement. J'aidais quelqu'un à lancer une installation basée sur perl sur un RedLad 4.6 zLinux et fonctionnant sous sudo semblait saisir le système perl plutôt que l'exécutable perl pleinement qualifié.sudo utilisant PATH avant le fichier exécutable complet

Exemple:

/my/perl/bin> ./perl -v == 5.8.8 
/my/perl/bin> /my/perl/bin/perl -v == 5.8.8 
/my/perl/bin> sudo /my/perl/bin/perl -v == 5.8.5???? 

Même si nous avons été pleinement qualifions le chemin de notre perl il était encore accaparement/usr/bin/perl lors de l'exécution sudo. Je ne sais pas pourquoi, tous les gourous savent?

+0

s'il vous plaît utiliser le formatage du code. Les instantanés de ligne de commande sont à peine lisibles. –

+0

Cette question appartient à serverfault.com – nos

+1

Y a-t-il une chance/my/perl/bin/perl est un script shell? –

Répondre

0

préserver l'environnement:

sudo -E /my/perl/bin/perl -v 
0

Modifier vous sudoers config:

sudo gedit /etc/sudoers 

ajouter cette ligne

Defaults env_keep +=PATH 

ce qui est similaire à sudo -E mais persistante.

0

vérifier si votre fichier sudoers a l'option secure_path définir si oui, qui est votre chemin

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Questions connexes