Umieszczam „exit” w moim pliku .bashrc. Nie mam fizycznego dostępu do komputera, więc aby się z nim połączyć, używam ssh. Nie mam uprawnień roota. Za każdym razem, gdy łączę się z serwerem, połączenie automatycznie się zamyka.
Do tej pory próbowałem:
- Nadpisywanie .bashrc za pomocą scp i sftp. Połączenie zostanie zamknięte, zanim będę mógł cokolwiek zrobić.
- Korzystanie z kilku różnych programów GUI w celu uzyskania dostępu do ssh (połączenie zostaje zamknięte)
- Nadpisywanie pliku ftp. (nie można użyć ftp)
- Z mojego domowego komputera
- $ ssh host "bash --noprofile --norc" (połączenie zostaje zamknięte)
- $ ssh host "mv .bashrc bashrc_temp" (połączenie zostaje zamknięte)
- $ ssh host "rm .bashrc" (to samo)
- $ ssh host -t (połączenie zostaje zamknięte)
Czy jest coś, co mogę zrobić, aby wyłączyć .bashrc, a może nadpisać plik przed uzyskaniem .bashrc?
AKTUALIZACJA
@ ring0
Próbowałem twojej sugestii, ale bez powodzenia. Plik bashrc nadal działa jako pierwszy.
Inną rzeczą, którą próbowałem, było zalogowanie się na inne konto i edycja sudo .bashrc, ale nie mam uprawnień sudo na tym koncie.
Chyba skontaktuję się z administratorem.
EDYTOWAĆ
@shellholic
Nie mogę w to uwierzyć, ale to podejście zadziałało! Choć „exit” występuje w ciągu pierwszych kilku liniach (składa się tylko z kilku jeśli bloki i eksport oświadczenia) w pliku .bashrc, nadal udało się CTRL-C przerwania go pomyślnie w ciągu dwudziestu próbach (trwało około 3 minut). Usunąłem obrażającą linię w .bashrc i wszystko znów działa.
man 8 sshd
mówi, że to9. Runs user's shell or command.
jako dziewiąty krok ...: - /Odpowiedzi:
możesz spróbować przerwać (ctrl + C) przed wykonaniem części wyjścia
.bashrc
.Próbowałem, dodając następujące na górze bashrc testusera, działa, to tylko kwestia czasu. Bardzo łatwe w moim przypadku:
źródło
Udało mi się też zepsuć mój plik .bashrc w nowym klastrze, do którego otrzymałem dostęp próbny. Nie chcąc wydawać się noobem, ostatnią rzeczą, którą chciałem zrobić, było poproszenie o pomoc administratorów i nie mogłem uzyskać odpowiednio dobranego czasu ^ + C do pracy.
Jednak zadziałało wysłanie komendy „rm” jako ostatecznego argumentu do ssh. to znaczy
Nie mogłem uruchomić polecenia „mv” (wypróbowanego wcześniej bez -t), więc myślę, że opcja -t musiała to zrobić, ale możesz to przetestować, jeśli chcesz. Teraz odzyskałem z pliku .bashrc ~ (utworzonego przez vima) wszystko oprócz podejrzanej linii i wszystko jest na świecie! = D.
źródło
ssh -tv user@home mv .bashrc .bashrc-old
pracował dla mnieJeśli możesz zalogować się jako inny użytkownik, spróbuj tego:
Oczywiście potrzebujesz hasła.
źródło
ksh
lubcsh
Jeśli przypomnę sobie jakieś złe doświadczenia, które miałem w ten sposób, ssh, scp, sftp wydają się uruchamiać pliki inicjujące.
Moją propozycją jest użycie prostego FTP, a następnie usunięcie lub zmiana nazwy niepoprawnego pliku w wierszu poleceń FTP po zalogowaniu. Zakładam, że twój system pozwoli ci na dostęp przez FTP. W takim przypadku pamiętaj o zmianie hasła (bezpiecznie) po zakończeniu naprawy.
źródło
Od
man ssh
(OpenSSH_5.6p1
przynajmniej nie jestem pewien, kiedy został dodany),.. co oznacza, że możesz utworzyć
~/.ssh/rc
zawierający następujące elementy:Następnie, gdy wejdziesz
ssh
, problematyczne bashrc zostanie przeniesione na bok, przed uruchomieniem powłoki logowania - wtedy możesz oczywiście naprawićbak.bashrc
i przenieść ją z powrotem na miejsceźródło
Połącz przez SCP lub SFTP i edytuj / zmień nazwę / usuń plik .bashrc w ten sposób. Edytuj - D'oh, widzę, że powiedziałeś, że próbowałeś tego. No cóż.
źródło
Miałem ten sam problem i jakoś byłem w stanie go rozwiązać. Użyłem ssh, aby uzyskać dostęp do systemu, i nacisnąłem i przytrzymałem Ctrl + c, jak tylko się zalogowałem. Wtedy ~ / .bashrc nie został odczytany i mogłem go zmodyfikować.
źródło
Znalazłem to działające.
Przerwij program ładujący grub, naciskając e ... ponownie naciśnij e, aby wprowadzić linie ładujące grub, ponownie naciśnij e, aby edytować linię jądra,
idź do końca linii;
dodaj init = / bin / bash na końcu linii,
Enter, aby wrócić, b, aby uruchomić,
otworzy powłokę bash, otworzy vim /root/.bashrc i odpowiednio edytuje. wyjdź, a teraz będziesz mógł się zalogować
źródło
Jeśli używasz Homestead Vagrant ...
Oto jak wydostałem się z tej marynaty.
(Korzystanie z Git Bash w systemie Windows 10)
Uwaga: domyślne hasło to „włóczęga”
Te artykuły pomogły mi:
źródło
Kilka sugestii, które zadziałały dla mnie z tego wątku Reddit :
źródło