Si el binario está en /usr/bin/binary
y el script invoca el binario sin especificar la ruta completa, sino que se basa en /usr/bin
estar en PATH
entonces simplemente puede agregar la ubicación del nuevo binario al comienzo del PATH
del usuario . Ponga algo como esto en su ~/.bashrc
:
PATH=/mount/new_version:$PATH
Por razones de seguridad, los scripts suelen especificar la ruta completa a los archivos binarios para evitar este tipo de cosas.
Si tiene acceso al binario, puede hacer una copia de seguridad y crear un enlace simbólico.
mv /urs/bin/binary /urs/bin/binary.bkp
ln -s /mount/new_version/binary /urs/bin/binary
[EDITAR]
Lo siento, no vi que el cambio debe hacerse solo para un usuario.
Puede crear una función para llamar en lugar del binario.
Dependiendo de cómo ejecute el binario (ruta completa o solo el nombre), debe crear una función adecuada , como:
# Full path
function /urs/bin/binary () { command /mount/new_version/binary "[email protected]"; }
export -f /urs/bin/binary
# Name
function binary () { command /mount/new_version/binary "[email protected]"; }
export -f binary
Si el binario no acepta/necesita argumentos, elimine "[email protected]" .
Para automatizar la creación de la función, coloque las líneas de función en el archivo .profile en el directorio de inicio del usuario.
alias commandname=/mount/new_version/binary
en el .bashrc arriba de la declaración de ruta/exportador en el perfil se logrará con bastante facilidad.