J'ai mis "exit" dans mon fichier .bashrc. Je n'ai pas d'accès physique à la machine, donc pour me connecter, j'utilise ssh. Je n'ai pas de privilèges root. Chaque fois que je me connecte au serveur, la connexion se ferme automatiquement.
Jusqu'à présent, j'ai essayé:
- Écraser .bashrc avec scp et sftp. La connexion se ferme avant que je puisse faire quoi que ce soit.
- Utilisation de différents programmes GUI pour accéder à ssh (la connexion se ferme)
- Écraser le fichier avec ftp. (ne peut pas utiliser ftp)
- Depuis mon ordinateur personnel
- $ ssh host "bash --noprofile --norc" (la connexion se ferme)
- $ ssh host "mv .bashrc bashrc_temp" (la connexion se ferme)
- $ ssh host "rm .bashrc" (même chose)
- $ ssh host -t (la connexion se ferme)
Puis-je faire quelque chose pour désactiver .bashrc ou peut-être écraser le fichier avant que .bashrc soit fourni?
MISE À JOUR
@ ring0
J'ai essayé votre suggestion, mais pas de chance. Le fichier bashrc s'exécute toujours en premier.
Une autre chose que j'ai essayée était de me connecter avec un autre compte et de modifier sudo le .bashrc, mais je n'ai pas les privilèges sudo sur ce compte.
Je suppose que je vais contacter l'administrateur.
MODIFIER
@shellholic
Je ne peux pas le croire, mais cette approche a fonctionné! Même si "exit" se produit dans les premières lignes (composées uniquement de quelques if si blocs et instructions d' exportation ) dans le fichier .bashrc, j'ai quand même réussi à l'interrompre avec succès en Ctrl-c dans les vingt essais (a pris environ 3 minutes). J'ai supprimé la ligne incriminée dans le .bashrc et tout fonctionne à nouveau.
man 8 sshd
dit que c'est9. Runs user's shell or command.
la neuvième étape ...: - /Réponses:
vous pouvez essayer d'interrompre (ctrl + C) avant que la partie de sortie de votre ne
.bashrc
soit exécutée.J'ai essayé en ajoutant ce qui suit en haut du bashrc d'un testeur, cela fonctionne, c'est juste une question de timing. Très facile dans mon cas:
la source
J'ai également réussi à gâcher mon fichier .bashrc sur un nouveau cluster auquel j'ai eu accès à l'essai. Ne voulant pas ressembler à un noob, la dernière chose que je voulais faire était de demander l'aide des administrateurs, et je n'arrivais pas à faire fonctionner un ^ + C au bon moment.
Ce qui a fonctionné cependant, a été d'envoyer une commande 'rm' comme argument final à ssh. c'est à dire
Je n'ai pas pu faire fonctionner une commande 'mv' (essayée avant sans -t), donc je pense que l'option -t doit l'avoir fait, mais vous pouvez tester cela si vous le souhaitez. J'ai maintenant récupéré du fichier .bashrc ~ (créé par vim) tout sauf la ligne douteuse en question et tout va bien dans le monde! = D
la source
ssh -tv user@home mv .bashrc .bashrc-old
travaillé pour moiSi vous pouvez vous connecter en tant qu'utilisateur différent, essayez ceci:
Vous aurez bien sûr besoin de votre mot de passe.
la source
ksh
oucsh
Si je me souviens de quelques mauvaises expériences que j'ai eues comme ça, les ssh, scp, sftp semblent exécuter les fichiers d'initialisation.
Ma suggestion est d'utiliser un FTP simple, puis de supprimer ou renommer un fichier incorrect sur la ligne de commande FTP après la connexion. Je suppose que votre système vous autorisera à accéder au FTP. Dans un tel cas, assurez-vous de changer votre mot de passe (en toute sécurité) lorsque vous avez terminé la réparation.
la source
De
man ssh
(pourOpenSSH_5.6p1
au moins, je ne sais pas quand il a été ajouté),.. ce qui signifie que vous pouvez créer
~/.ssh/rc
contenant les éléments suivants:Ensuite, lorsque vous
ssh
entrerez, le bashrc problématique sera déplacé avant le démarrage de votre shell de connexion - vous pouvez alors évidemment réparer lebak.bashrc
et le remettre en placela source
Connectez-vous via SCP ou SFTP et modifiez / renommez / supprimez votre fichier .bashrc de cette façon. Edit - D'oh, je vois que tu as dit que tu avais essayé. Tant pis.
la source
J'ai eu le même problème et j'ai réussi à le résoudre. J'ai utilisé ssh pour accéder au système et j'ai appuyé et maintenu Ctrl + c dès que je me suis connecté au système. Ensuite, ~ / .bashrc n'a pas été lu et j'ai pu le modifier.
la source
J'ai trouvé que ça fonctionnait.
Interrompez le chargeur de démarrage de grub en appuyant sur e ... appuyez à nouveau sur e pour entrer dans les lignes de chargement de grub, appuyez à nouveau sur e pour modifier la ligne du noyau,
aller en fin de ligne;
ajoutez init = / bin / bash à la fin de la ligne,
entrer pour revenir, b pour démarrer,
il ouvrira un shell bash, ouvrira vim /root/.bashrc et modifiera en conséquence. quitter et maintenant vous pourrez vous connecter
la source
Si vous utilisez Homestead Vagrant ...
Voici comment je me suis sorti de ce cornichon.
(Utilisation de Git Bash sur Windows 10)
Remarque: le mot de passe par défaut est "vagabond"
Ces articles m'ont aidé:
la source
Quelques suggestions qui ont fonctionné pour moi à partir de ce fil Reddit :
la source