web-dev-qa-db-fra.com

Comment définir PATH pour tous les utilisateurs de Debian?

J'ai un serveur Debian Lenny et j'aimerais que le www-data l'utilisateur doit avoir /usr/local/zend/bin dans son CHEMIN, afin qu'il puisse exécuter un script dans cron en tant que www-data.

Comment ajouter /usr/local/zend/bin vers PATH, donc www-data peut exécuter des fichiers dans /usr/local/zend/bin?

27
Sandra

Le premier endroit où PATH est défini est /etc/login.defs. Il y a un paramètre pour root et un paramètre pour tout le monde.

Un autre endroit où vous pouvez définir des variables d'environnement est /etc/environment. Ces paramètres s'appliqueront à tout le monde (vous ne pouvez pas y écrire de code Shell arbitraire).

Un troisième endroit où vous pouvez définir des variables d'environnement est /etc/profile. Là, vous pouvez écrire du code Shell arbitraire. Si vous souhaitez un paramètre spécifique à l'utilisateur, il existe le fichier par utilisateur correspondant ~www-data/.profile. Mais cela ne s'appliquera qu'aux connexions interactives sur console; en particulier, il ne s'appliquera pas aux tâches cron, sauf si elles source explicitement /etc/profile.

Si vous n'avez besoin que de ce paramètre PATH dans une crontab utilisateur, vous pouvez l'écrire au début de la crontab. Notez que vous avez besoin de la liste complète (PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/zend/bin), vous ne pouvez pas utiliser de substitution de variable (PATH=$PATH:/usr/local/zend/bin ne fonctionnera pas là-bas).

Pour définir un chemin d'accès pour tous les utilisateurs sauf root, modifiez /etc/profile ou /etc/enviroment. Pour root ou un utilisateur individuel, modifiez leur .bashrc ou .bash_profile dans leurs répertoires personnels, respectivement. Ajouter le PATH=$PATH:/new/location/.

8
David Rickman

Pour définir simplement var pour tous les utilisateurs sans surcharger votre profile, vous pouvez ajouter votre propre petit script dans /etc/profile.d répertoire comme celui-ci:

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

Puis reconnectez-vous.

1
user3132194

nano/etc/profile

Ajoutez ces lignes à la fin du fichier:

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

exporter M2 =/opt/Apache-maven-3.6.1/bin

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

Enregistrez le fichier. Redémarrez ou utilisez la commande ci-dessous:

source/etc/profile

Testez vos paramètres:

echo $ Java_HOME

javac --version

1
Ryan Augustine