Ich habe "exit" in meine .bashrc-Datei eingefügt. Ich habe keinen physischen Zugriff auf die Maschine, daher verwende ich ssh, um mich mit ihr zu verbinden. Ich habe keine Root-Rechte. Jedes Mal, wenn ich eine Verbindung zum Server herstelle, wird die Verbindung automatisch getrennt.
Bisher habe ich versucht:
- Überschreiben von .bashrc mit scp und sftp. Die Verbindung wird getrennt, bevor ich etwas tun kann.
- Verwenden einiger verschiedener GUI-Programme, um auf ssh zuzugreifen (Verbindung wird geschlossen)
- Datei mit ftp überschreiben. (kann ftp nicht benutzen)
- Von meinem Heimcomputer
- $ ssh-Host "bash --noprofile --norc" (Verbindung wird geschlossen)
- $ ssh-Host "mv .bashrc bashrc_temp" (Verbindung wird geschlossen)
- $ ssh-Host "rm .bashrc" (dasselbe)
- $ ssh host -t (Verbindung wird geschlossen)
Kann ich irgendetwas tun, um .bashrc zu deaktivieren oder die Datei zu überschreiben, bevor .bashrc bezogen wird?
AKTUALISIEREN
@ ring0
Ich habe deinen Vorschlag ausprobiert, aber kein Glück. Die bashrc-Datei wird weiterhin zuerst ausgeführt.
Eine andere Sache, die ich versuchte, war, mich mit einem anderen Konto anzumelden und die .bashrc-Datei zu bearbeiten, aber ich habe keine sudo-Berechtigungen für dieses Konto.
Ich nehme an, ich werde den Administrator kontaktieren.
BEARBEITEN
@Shellholic
Ich kann es nicht glauben, aber dieser Ansatz hat funktioniert! Obwohl "exit" innerhalb der ersten paar Zeilen (bestehend aus nur wenigen if- Blöcken und export- Anweisungen) in der .bashrc-Datei auftritt, habe ich es trotzdem geschafft, Strg-c innerhalb von 20 Versuchen erfolgreich zu unterbrechen (es dauerte ungefähr 3 Minuten). Ich habe die fehlerhafte Zeile in der .bashrc entfernt und alles funktioniert wieder.
man 8 sshd
sagt, dass es9. Runs user's shell or command.
als neunter Schritt ...: - /Antworten:
Sie können versuchen, den Vorgang abzubrechen (Strg + C), bevor der Exit-Teil Ihres Programms
.bashrc
ausgeführt wird.Ich habe versucht, indem ich das Folgende oben in den bashrc eines Testbenutzers hinzufüge, es funktioniert, es ist nur eine Frage des Timings. Sehr einfach in meinem Fall:
quelle
Ich habe es geschafft, meine .bashrc-Datei auf einem neuen Cluster durcheinander zu bringen, auf den ich Testzugriff erhalten habe. Ich wollte nicht wie ein Noob wirken, aber ich wollte als letztes die Administratoren um Hilfe bitten, und ich konnte kein gut abgestimmtes ^ + C zum Laufen bringen.
Was jedoch funktionierte, war, ein 'rm'-Kommando als letztes Argument an ssh zu senden. dh
Ich konnte einen 'mv'-Befehl nicht zum Laufen bringen (zuvor ohne -t ausprobiert), daher denke ich, dass die -t-Option dies getan haben muss, aber Sie können das testen, wenn Sie möchten. Ich habe jetzt von der .bashrc ~ -Datei (erstellt von vim) alles außer der fraglichen zweifelhaften Zeile wiederhergestellt und alles stimmt auf der Welt! = D
quelle
ssh -tv user@home mv .bashrc .bashrc-old
arbeitete für michWenn Sie sich als ein anderer Benutzer anmelden können, versuchen Sie Folgendes:
Sie benötigen natürlich Ihr Passwort.
quelle
ksh
odercsh
Wenn ich mich an einige schlechte Erfahrungen erinnere, die ich auf diese Weise gemacht habe, scheinen ssh, scp und sftp die Initialisierungsdateien auszuführen.
Mein Vorschlag ist, einfaches FTP zu verwenden und dann die fehlerhafte Datei in der FTP-Befehlszeile nach dem Anmelden zu löschen oder umzubenennen. Ich gehe davon aus, dass Ihr System Ihnen den FTP-Zugriff ermöglicht. In einem solchen Fall müssen Sie Ihr Passwort (sicher) ändern, wenn Sie die Reparatur abgeschlossen haben.
quelle
Von
man ssh
(OpenSSH_5.6p1
zumindest nicht sicher, wann es hinzugefügt wurde),..das bedeutet, dass Sie
~/.ssh/rc
Folgendes erstellen können :Wenn Sie dann
ssh
eintreten, wird der problematische bashrc aus dem Weg geräumt, bevor Ihre Anmeldeshell gestartet wird. Sie können dann offensichtlich den Fehler behebenbak.bashrc
und ihn wieder an seinen Platz verschiebenquelle
Stellen Sie eine Verbindung über SCP oder SFTP her und bearbeiten / benennen / löschen Sie Ihre .bashrc-Datei auf diese Weise. Bearbeiten - Oh, wie ich sehe, hast du das versucht? Naja.
quelle
Ich hatte das gleiche Problem und konnte es irgendwie lösen. Ich habe ssh verwendet, um auf das System zuzugreifen, und habe Strg + C gedrückt und gehalten, sobald ich mich beim System angemeldet habe. Dann wurde ~ / .bashrc nicht gelesen, und ich konnte es ändern.
quelle
Ich fand das funktioniert.
Unterbrechen Sie den Grub-Bootloader, indem Sie erneut e ... drücken, um Grub-Ladezeilen einzugeben. Drücken Sie erneut e, um die Kernel-Zeile zu bearbeiten.
gehe zum Ende der Zeile;
füge init = / bin / bash am Ende der Zeile hinzu,
Enter, um zurückzukehren, b, um zu booten,
Es öffnet eine Bash-Shell, öffnet vim /root/.bashrc und bearbeitet sie entsprechend. Beenden Sie und Sie können sich jetzt anmelden
quelle
Wenn Sie Homestead Vagrant verwenden ...
Hier ist, wie ich mich aus dieser Gurke herausgeholt habe.
(Verwenden von Git Bash unter Windows 10)
Hinweis: Das Standardkennwort lautet "vagrant".
Diese Artikel haben mir geholfen:
quelle
Ein paar Vorschläge, die für mich von diesem Reddit-Thread gearbeitet haben :
quelle