Come impostare PATH per tutti gli utenti in Debian?


25

Ho un server Debian Lenny e vorrei che l' www-datautente lo avesse /usr/local/zend/binnel suo PERCORSO, in modo che possa eseguire uno script in cron come www-data.

Come faccio /usr/local/zend/binad aggiungere a PATH, così www-dataposso eseguire i file in /usr/local/zend/bin?

Risposte:


40

Il primo posto dove è impostato PATH è /etc/login.defs. C'è un'impostazione per root e un'impostazione per tutti gli altri.

Un altro posto in cui è possibile definire le variabili di ambiente è /etc/environment. Queste impostazioni si applicano a tutti (non è possibile scrivere codice shell arbitrario lì).

Un terzo posto in cui è possibile definire le variabili di ambiente è /etc/profile. Lì puoi scrivere un codice shell arbitrario. Se si desidera un'impostazione specifica per l'utente, esiste il file per utente corrispondente ~www-data/.profile. Ma questo si applica solo agli accessi interattivi alla console; in particolare non si applica ai lavori cron a meno che non vengano esplicitamente forniti /etc/profile.

Se hai solo bisogno di PATHquell'impostazione in un crontab utente, puoi scriverlo all'inizio del crontab. Si noti che è necessario l'elenco completo ( PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/zend/bin), non è possibile utilizzare una sostituzione variabile ( PATH=$PATH:/usr/local/zend/binnon funzionerà lì).


---- come ricaricare ad es. /etc/login.defs?
MrCalvin,

@MrCalvin Effettuando l'accesso.
Gilles 'SO- smetti di essere malvagio' il

1
C'è qualche motivi /etc/login.defssarebbe ignorata? Ho aggiornato ENV_PATHe sto facendo eco $ PATH quando viene caricato .bashrc. Da qualche parte nel mezzo o viene modificato o non viene aggiornato poiché mostra il vecchio valore. Ho riavviato il computer, quindi non è quello.
Annan,

@Annan È probabile che venga cambiato da qualche parte. Nota che la mia risposta è stata scritta nel 2010, prima di systemd; se il tuo sistema utilizza systemd, potrebbe avere il suo modo di definire PATHin aggiunta o in sostituzione di altri modi.
Gilles 'SO- smetti di essere malvagio'

8

Per impostare un percorso per tutti gli utenti tranne radice, modificare /etc/profileo /etc/enviroment. Per l'utente root o un singolo utente, modifica le loro .bashrco .bash_profilenelle loro home directory, rispettivamente. Aggiungi il PATH=$PATH:/new/location/.


1

Per impostare semplicemente var per tutti gli utenti senza gravare sul tuo profile, puoi aggiungere il tuo piccolo script in una /etc/profile.ddirectory del genere:

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

Quindi accedere nuovamente.


1

nano / etc / profile

Aggiungi queste righe alla fine del file:

export JAVA_HOME = / opt / jdk-12.0.1

export MAVEN_HOME = / opt / apache-maven-3.6.1

export M2_HOME = / opt / apache-maven-3.6.1

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

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

Salva il file. Riavvia o utilizza il comando seguente:

fonte / etc / profilo

Metti alla prova le tue impostazioni:

echo $ JAVA_HOME

javac: versione

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.