Le fichier correct, avant Mavericks, était ~/.MacOSX/environment.plist
. Cette fonction n'est plus prise en charge.
Dans Darwin, et donc dans Mac OS X, l'endroit approprié pour les définir est dans /etc/launchd.conf
pour s'appliquer à tous les processus ; s'il s'agit d'un shell utilisateur spécifique, utilisez plutôt les fichiers shell appropriés, en fonction du shell en question. Voir le launchd.conf
y launchctl
pages de manuel pour en savoir plus.
Cela dit...
Si votre objectif est de voir ces variables appliquées aux sessions ssh, vous devez savoir que ssh, pour des raisons de sécurité, n'applique pas les variables d'environnement de cette manière. En fait, une session ssh reçoit normalement un ensemble de variables d'environnement beaucoup plus restrictif de la part du système d'exploitation, car il ne s'agit pas de ce que l'on appelle un shell "login" ou "interactif", il est classé comme un shell "non-interactif". (Voir man bash
pour en savoir plus sur les types de shells). La façon dont ssh gère les variables d'environnement est bien couverte dans la documentation et les pages de manuel de ssh/sshd.
Pour ssh -- qui est son propre shell, semblable à bash -- les variables d'environnement de la session sont stockées dans le répertoire ~/.ssh/environment
comme l'équivalent par utilisateur de la définition de ces paramètres pour bash ou csh, etc. dans leurs fichiers de lancement respectifs. C'est probablement là que vous voulez définir vos variables ENV pour vos sessions ssh utilisateur, bien que vous ne détailliez pas pourquoi vous cherchez à assigner des ENV globalement dans votre message original, ce qui aurait été utile pour fournir une solution. Je vous suggère de les définir explicitement sur une base utilisateur par utilisateur afin de maintenir une sécurité appropriée basée sur chaque compte respectif en suivant la meilleure pratique du privilège/attribut le moins restrictif.
Si, pour une raison ou une autre, vous souhaitez ignorer les implications en matière de sécurité, alors définissez les paramètres suivants PermitUserEnvironment
dans votre configuration ssh. Notez que ceci est désactivé si UseLogin
est activé. IMPORTANT : Sachez que cela signifie que les comptes d'utilisateur configurés pour utiliser les services de /bin/false
comme leur shell - la méthode typique pour désactiver un compte d'utilisateur - peut maintenant potentiellement contourner cette restriction et devenir actif, ce qui est dangereux. De nombreux comptes sont configurés pour utiliser /bin/false
comme leur coquille en tant qu'attente de sécurité.
En résumé, vous ne devriez pas faire cela globalement et attendre de ssh qu'il propage ENV pour des raisons de sécurité. Votre question est, en fait, délibérément posée sur la façon de vaincre plusieurs mécanismes qui existent pour des raisons de sécurité.
1 votes
Le fichier (
/etc/environment
) n'est pas lu parce qu'il ne s'agit pas d'une norme intersystème - il fait simplement partie de la fonction PAM de Linux. Mac OS X n'est pas Linux et n'utilise pas PAM, pas plus que d'autres systèmes d'exploitation à ma connaissance. Vous vous en êtes sorti uniquement parce que vous étiez sous Linux, apparemment. Et oui, il est toujours lu - par Linux ;-)