Alors disons que quelqu'un a fait une faute de frappe dans son .bashrc
qui l'empêche de se connecter via ssh
(c'est-à-dire que la connexion ssh se termine à cause de l'erreur dans le fichier). Existe-t-il un moyen pour que cette personne puisse se connecter sans l'exécuter (ou .bashrc
puisque l'un fait fonctionner l'autre), ou bien supprimer/renommer/invalider le fichier ?
Supposons que vous n'ayez pas d'accès physique à la machine, et que ce soit le seul compte d'utilisateur ayant la possibilité de se connecter par ssh.
Pour référence : .bash_profile
comprend .bashrc
:
[[ -f ~/.bashrc ]] && . ~/.bashrc
Edit : Choses que j'ai essayé :
ssh user@host "rm ~/.bashrc"
scp nothing user@host:/RAID/home/tom/.bashrc
ssh user@host "/bin/bash --norc"
Tous donnent l'erreur :
/RAID/home/tom/.bashrc: line 16: /usr/local/bin/file: No such file or directory
/RAID/home/tom/.bashrc: line 16: exec: /usr/local/bin/file: cannot execute: No such file or directory
5 votes
Votre commande scp ne fonctionnera pas car scp lira également le fichier .bashrc lors de la connexion. Pour éviter ce problème à l'avenir, vous pouvez ajouter quelque chose comme
[ -z "$PS1" ] && return
au début de ./bashrc. De cette façon, scp arrêtera d'analyser .bashrc après la première ligne, et vous pourrez l'écraser en cas d'urgence.