El perfil bash funciona para el usuario pero no para sudo

9

Modifiqué mi .profile para incluir una carpeta si hay una unidad flash conectada. Cuando ejecuto el comando como usuario, funciona bien pero me dice que sudo debe ejecutar el script (esto es lo que quiero). Sin embargo, cuando intento ejecutarlo con sudo obtengo "comando no encontrado"

Tengo un enlace simbólico (flash) en mi carpeta / var / www que apunta a mi / media / unidad flash. (no importa esta configuración ya que es solo para desarrolladores)

Este es el perfil de mi usuario:

# set PATH so it includes flash scripts
if [ -d "/var/www/flash/scripts" ] ; then
    PATH="/var/www/flash/scripts:$PATH"
fi

cuando trato de correr como sudo me sale:

sudo: script: command not found    

¿algunas ideas?

usuario564448
fuente

Respuestas:

3

Cuando ejecuta el script mientras sudointenta acceder a la raíz. Por lo tanto, $HOME/.profileno se /root/.profileaccederá a su lugar .

Así que los cambios lo que cada vez que hizo en $HOME/.profilea /root/.profile. Para crear /root/.profile. Usa los siguientes comandos.

sudo su
cd /root
touch .profile

después de realizar los cambios, intente ejecutar el script.

o editar $HOME/.bashrcy agregar la siguiente línea

alias sudo='sudo env PATH=$PATH $@'

Espero que esto ayude.

devav2
fuente
Intenté "alias sudo = 'sudo env PATH = $ PATH $ @'" pero obtengo "env: wp: Permiso denegado"
user564448
lo siento, "wp" es el script
user564448
Pruebe el otro paso que mencioné.
devav2
1
Léalo aquí , debe usarsudo su -p
devav2
2

Puede preservar el valor de $PATHcuando se usa sudo. Use visudopara agregar $PATHa la lista de variables para mantener. Una línea como la siguiente /etc/sudoersdebería hacer el truco:

Defaults env_keep += "PATH"
Dennis Kaarsemaker
fuente
1

ese es el comportamiento de sudo en ubuntu ..

por ejemplo ejecutar el siguiente comando

echo 'echo $PATH' | sh

y que este

echo 'echo $PATH' | sudo sh 

ves que la salida es diferente! para evitar diferentes rutas, ponga lo siguiente en su ~ / .bashrc

alias sudo='sudo env PATH=$PATH'
Christopher Jahnke
fuente
Después de poner alias sudo = 'sudo env PATH = $ PATH' en mi .bashrc obtengo "env: wp: Permiso denegado"
user564448
-1

También puede mover su archivo en un directorio usado de sudoers:

    sudo mv $HOME/bash/script.sh /usr/sbin/ 
LeGilles
fuente