¿Cómo configurar PATH para todos los usuarios en Debian?

25

Tengo un servidor Debian Lenny, y me gustaría que el www-datausuario tenga /usr/local/zend/binen su RUTA, para que pueda ejecutar un script en cron como www-data.

¿Cómo agrego /usr/local/zend/bina PATH, para que www-datapueda ejecutar archivos /usr/local/zend/bin?

Sandra
fuente

Respuestas:

40

El primer lugar donde se establece PATH es /etc/login.defs. Hay una configuración para root y una configuración para todos los demás.

Otro lugar donde puede definir variables de entorno es /etc/environment. Esta configuración se aplicará a todos (no puede escribir código de shell arbitrario allí).

Un tercer lugar donde puede definir variables de entorno es /etc/profile. Allí puede escribir código arbitrario de shell. Si desea una configuración específica del usuario, existe el archivo correspondiente por usuario ~www-data/.profile. Pero esto solo se aplicará a los inicios de sesión interactivos de la consola; en particular, no se aplicará a los trabajos cron a menos que explícitamente sean fuente /etc/profile.

Si solo necesita esa PATHconfiguración en un crontab de usuario, puede escribirla al comienzo del crontab. Tenga en cuenta que necesita la lista completa ( PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/zend/bin), no puede usar una sustitución de variable ( PATH=$PATH:/usr/local/zend/binno funcionará allí).

Gilles 'SO- deja de ser malvado'
fuente
---- ¿Cómo se recarga, por ejemplo, /etc/login.defs?
MrCalvin
@MrCalvin Al iniciar sesión.
Gilles 'SO- deja de ser malvado'
1
¿Hay alguna razón /etc/login.defsque se ignore? He actualizado ENV_PATHy estoy haciendo eco de $ PATH cuando se carga .bashrc. En algún punto intermedio se está cambiando o no se actualiza, ya que muestra el valor anterior. He reiniciado la computadora, así que no es eso.
Annan
@Annan Lo más probable es que se esté cambiando en alguna parte. Tenga en cuenta que mi respuesta fue escrita en 2010, antes de systemd; si su sistema usa systemd, puede tener su propia forma de definir PATHademás o en reemplazo de otras formas.
Gilles 'SO- deja de ser malvado'
8

Para establecer una ruta para todos los usuarios excepto root, editar /etc/profileo /etc/enviroment. Para root o un usuario individual, edite su .bashrco .bash_profileen sus directorios de inicio, respectivamente. Añadir el PATH=$PATH:/new/location/.

David Rickman
fuente
1

Para establecer simplemente var para todos los usuarios sin cargar su profile, puede agregar su propio script pequeño en un /etc/profile.ddirectorio como ese:

echo 'PATH="/usr/local/zend/bin:$PATH"' > /etc/profile.d/zend_path.sh

Luego vuelve a iniciar sesión.

usuario3132194
fuente
1

nano / etc / profile

Agregue estas líneas al final del archivo:

export JAVA_HOME = / opt / jdk-12.0.1

exportar MAVEN_HOME = / opt / apache-maven-3.6.1

export M2_HOME = / opt / apache-maven-3.6.1

exportar M2 = / opt / apache-maven-3.6.1 / bin

export PATH = $ JAVA_HOME / bin: $ M2: $ PATH

Guarda el archivo. Reinicie o use el siguiente comando:

fuente / etc / perfil

Pon a prueba tu configuración:

echo $ JAVA_HOME

javac --version

Ryan Augustine
fuente