GNU/Linux >> Tutoriels Linux >  >> Linux

Comment définir le chemin pour les commandes sudo

Ceci est normalement défini par le secure_path option dans /etc/sudoers . À partir du man sudoers :

 secure_path   Path used for every command run from sudo.  If you don't
               trust the people running sudo to have a sane PATH environ‐
               ment variable you may want to use this.  Another use is if
               you want to have the “root path” be separate from the “user
               path”.  Users in the group specified by the exempt_group
               option are not affected by secure_path.  This option is not
               set by default.

Pour exécuter des commandes qui ne sont pas dans le $PATH par défaut , vous pouvez soit

  1. Utilisez le chemin complet :sudo ~/bin/my-command; ou

  2. Ajouter le répertoire contenant la commande à secure_path . Exécutez sudo visudo et modifiez la ligne du chemin sécurisé :

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

    Enregistrez le fichier et la prochaine fois que vous exécuterez sudo , le répertoire ~/bin sera dans son $PATH .


Voici ce que j'ai utilisé comme solution de contournement :

sudo cp $(which my-command) /usr/bin
...

Le which La commande est exécutée dans un sous-shell qui n'est pas root, elle est donc capable de trouver my-command , puis, sudo copie l'exécutable dans un chemin que le root l'utilisateur peut accéder. Pas génial pour la sécurité, mais ça me convenait d'exécuter une image docker qui était détruite juste après l'exécution de la commande.


Linux
  1. Comment faire en sorte que `sudo` préserve $path ?

  2. Dans le script Python, comment définir PYTHONPATH ?

  3. Comment puis-je configurer la saisie semi-automatique pour les commandes Git ?

  4. Comment définir le chemin JAVA_HOME sur Ubuntu ?

  5. Comment faire un alias pour un long chemin?

Comment configurer le cluster RabbitMQ sur CentOS 7

Comment exécuter des commandes Sudo sans mot de passe

Comment activer le sudo sans mot de passe pour l'utilisateur sous Linux

Comment configurer un serveur Apt-cacher ?

Comment configurer Tls pour Postfix sur Ubuntu ?

Comment exécuter les commandes sudo sans mot de passe