J'ai un serveur Web CentOS 5.7 et je souhaite modifier l'emplacement par défaut dans lequel j'atterris lors de la connexion via SSH.
Actuellement, j'atterris /home/username
et je veux atterrir à la /home
place.
Je suis entré en tant que root et ajouté PermitUserEnvironment yes
à /etc/.ssh/sshd_config
- et si je comprends bien, cela balaie ensuite le propre ssh
dossier de l'utilisateur pour un environment
fichier. Ce dont je ne suis pas sûr, c'est exactement ce que j'ajoute à ce fichier d'environnement, car export path=$PATH:$HOME
cela ne semble pas fonctionner, ni ici ni dans mes fichiers .bashrc ou .bash_profile (ce qui, si je comprends bien, ne ferait aucune différence de toute façon comme une connexion SSH est un shell non interactif?).
Merci d'avance.
usermod
lors du changement de tout ce qui concerne un utilisateur qui écrit/etc/passwd
, pour éviter les erreurs:usermod -d /home user
..bashrc
m'a fait facepalm. C'est tellement simple et évident, j'aurais aimé y avoir pensé! Bon travail. Gloire!La chose à retenir est qu'elle
~/.ssh/environment
est lue avant qu'un shell ou unessh
commande ne soit généré, donc (par exemple) ni l'exportation ni $ PATH n'ont de sens. Vous pouvez uniquement définir des variables d'environnement (pas exécuter des commandes shell générales) ici.Si vous récupérez l'environnement pour un shell ssh non interactif, puis modifiez cela, vous devriez obtenir ce que vous voulez pour les commandes non interactives. Par exemple:
$ ssh mylogin@myserver env
vous donnera ce avec quoi le ssh commence sur votre serveur. Si vous écrivez votre
~/.ssh/environment
fichier sous:PATH=/usr/local/bin
et réexécutez ce qui précède, vous devriez obtenir "bash: env: command not found". Bien!
Maintenant, construisez votre chemin explicitement, basé sur ce qu'il était à la base de votre système
sshd
(c'est-à-dire le premier appel "ssh .... env"), par exemple (en ajoutant/usr/local/bin
en tête):PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
Notez également qu'il n'est pas utile d'essayer de définir le CWD dans
~/.ssh/rc
(qui est exécuté après la~/.ssh/environment
lecture, mais avant votressh
shell ou votre commande) car votre shell démarrera (par défaut) dans votre chemin d'accueil.la source