Je veux juste configurer une variable d'environnement système, JAVA_HOME
pour tous les utilisateurs, y compris l' utilisateur root .
Exigences:
- accessible aux utilisateurs normaux
- accessible à la racine
- toujours chargé, pas seulement pour bash (gnome-terminal ne démarre pas un bash par défaut)
- travailler sur Ubuntu, Debian et éventuellement Red Hat
- super si addition peut être facilement scripté
Réponses:
Comme personne n’a ajouté une réponse complète, voici ce que je considère actuellement comme le meilleur, du moins pour Ubuntu, mais je suis ouvert à l’adapter pour d’autres plates-formes * nix.
Autres options déjà envisagées mais exclues:
/etc/environment
fonctionne mais est plus difficile à maintenir car d’autres outils ou personnes peuvent l’éditer./etc/profile
- comme ci-dessusla source
Sur Debian / Ubuntu, ce serait / etc / environment
Je ne connais pas l'équivalent Red Hat.
la source
/etc/environment
. Voir aussi serverfault.com/a/584072/26218Je ne comprends pas pourquoi vous avez exclu / etc / profile. C'est le bon endroit.
la source
Quelques-uns ont répondu en disant que cela
/etc/environment
est privé et / ou qu'ils ne sont plus utilisés dans Debian, ce qui est faux (à partir de la version 7).Le fichier est en fait lu par PAM - en particulier
pam_env(8)
, via unenvfile
indicateur par défaut . La page de manuel indique également cette valeur par défaut dans la section FILES.Les wikis cités (en particulier l'environnement local one) indiquent simplement que les variables d'environnement basées sur l'environnement local sont désormais censées figurer
/etc/profile
. Leur déclaration "(dans les anciennes versions de Debian, ainsi que / etc / environment)" est vague et se situe dans le contexte des paramètres régionaux.Un rapide grep à travers les
/etc/pam.d
spectacles:Ces lignes de configuration sont additives, et comme la première est manquante
envfile
, sa valeur par défaut est donc/etc/environment
.Bien entendu, tout cela dépend du binaire que vous utilisez (
crond
compiles de connexion, etc.) qui sont compilés avec PAM.Enfin, cela implique que d’autres systèmes utilisant PAM (par exemple, RedHat) se comportent de la même manière, comme le montre la page de manuel correspondante.
la source
Une note de côté: Jetez un coup d'œil à l' environnement des modules . J'utilise cette solution chaque fois que je dois proposer un environnement UNIX complexe, versionné, auto-extensible et concis à des dizaines, voire des centaines d'utilisateurs. Il est principalement utilisé dans les environnements HPC multi-utilisateurs à grande échelle. Le fait de l’utiliser pour une variable particulière est certes un travail d’ingénierie excessif, mais c’est un travail formidable lorsque vous avez besoin de plus que quelques progiciels et leur environnement.
la source
/etc/profile
devrait marcher. J'ai testé tout à l'heure pour être sûr, misexport SOMETEST=1234
à/etc/profile
et après la réenregistrementecho $SOMETEST
m'a donné1234
comme prévu. Aussi degnome-terminal
la source
/etc/enviroment
n'est pas utilisé dans la dernière version stable de Debian. La recommandation est de créer votre propre*.sh
fichier/etc/profile.d/
pour ce document tel que Sorin S. le dit. Voir https://wiki.debian.org/EnvironmentVariablesla source
Vous ne pouvez utiliser aucun fichier spécifique dans ce cas. alors....
/etc/profile
serait l'endroit approprié pour cela dans ce cas. Les utilisateurs actuellement connectés doivent obtenir une nouvelle session de connexion, mais cela ne devrait pas être un gros problème.@ wk01:
/etc/profile
n'est pas chargé par un shell autre que la connexion. vous.bashrc
êtes probablement en train de le charger ...la source