Ma question semble banale mais je n'ai pas réussi à trouver quoi que ce soit d'utile sur Internet. J'ai un binaire dans
/urs/bin/binary
mais il est obsolète et une version plus récente est disponible sur certains supports par exemple
/mount/new_version/binary
Il y a un script bash qui invoque ce binaire sous une forme comme
binary -doSomething
J'ai besoin de ce script pour invoquer une nouvelle version de binaire au lieu de l'ancienne mais je ne suis pas autorisé à modifier ce script. Est-ce un moyen de remplacer le chemin d'accès, mais uniquement pour mon utilisateur? Toute aide serait appréciée.
Réponses:
Si le binaire est dans
/usr/bin/binary
et que le script appelle le binaire sans spécifier le chemin complet, mais se fie à la place sur/usr/bin
être dans,PATH
vous pouvez simplement ajouter l'emplacement du nouveau binaire au début de l'utilisateurPATH
. Mettez quelque chose comme ça dans leur~/.bashrc
:Pour des raisons de sécurité, les scripts spécifient souvent le chemin complet vers les binaires pour éviter ce genre de chose.
la source
Si vous avez accès au binaire, vous pouvez le sauvegarder et créer un lien symbolique.
[ÉDITER]
Désolé, je n'ai pas vu que la modification doit être effectuée pour un seul utilisateur.
Vous pouvez créer une fonction à appeler au lieu du binaire.
Selon la façon dont vous exécutez le binaire (chemin complet ou simplement nom), vous devez créer une fonction appropriée , comme:
Si le binaire n'accepte pas / n'a pas besoin d'arguments, supprimez le "$ @" .
Pour automatiser la création de fonction, placez les lignes de fonction dans le fichier .profile du répertoire personnel de l'utilisateur.
la source
alias commandname=/mount/new_version/binary
dans le .bashrc au-dessus de l'instruction / exportation du chemin ou dans le profil accomplira assez facilement.
la source