Ben batırdım.


27

.Bashrc dosyama "exit" yazdım. Makineye fiziksel erişimim yok, bu yüzden bağlanmak için ssh kullanıyorum. Kök ayrıcalıklarım yok. Sunucuya her bağlandığımda, bağlantı otomatik olarak kapanıyor.

Şimdiye kadar denedim:

  • Scp ve sftp ile .bashrc'nin üzerine yazma. Bir şey yapmadan önce bağlantı kapanıyor.
  • Ssh'ye erişmek için birkaç farklı GUI programı kullanmak (bağlantı kapanır)
  • Ftp ile dosyanın üzerine yazılır. (ftp kullanamazsınız)
  • Ev bilgisayarımdan
    • $ ssh ana bilgisayarı "bash --noprofile --norc" (bağlantı kapanır)
    • $ ssh ana bilgisayarı "mv .bashrc bashrc_temp" (bağlantı kapanıyor)
    • $ ssh ana bilgisayarı "rm .bashrc" (aynı şey)
    • $ ssh host -t (bağlantı kapanıyor)

.Bashrc'yi devre dışı bırakmak için yapabileceğim bir şey var mı veya .bashrc kaynaklanmadan önce dosyanın üzerine yazabilir miyim?

GÜNCELLEŞTİRME

@ ring0

Önerinizi denedim ama şans yok. Bashrc dosyası hala ilk önce çalışıyor.

Denedim başka bir şey başka bir hesap ile giriş ve .bashrc düzenleme sudo, ancak bu hesapta sudo ayrıcalıkları yok.

Sanırım yönetici ile irtibata geçeceğim.

DÜZENLE

@shellholic

İnanamıyorum, ama bu yaklaşım işe yaradı! "Çıkış" İlk birkaç satır içinde gerçekleşir rağmen (sadece birkaç oluşan takdirde bloklar ve ihracat Bashrc dosyasında, hala yirmi çalþta başarıyla bunun kesme Ctrl-c başardı ifadeleri) (3 dakika kadar sürdü). .Bashrc'deki rahatsız edici çizgiyi kaldırdım ve her şey tekrar çalışır durumda.


2
darwinawards.com , .bashrc dosyanızın üzerine yazabilecek bir kullanıcı olarak (geçici olarak) erişiminiz olmalıdır veya varsayılan kabuğunu başka bir şeyle değiştirebilir. MS'in dediği gibi "Sistem Yöneticinize sorun".

2
man 8 sshd9. Runs user's shell or command.dokuzuncu adım olarak olduğunu söylüyor ...: - /

1
scp de çalışmayı durduracak, çünkü kabuk hala açılıyor ve .bashrc çağrılıyor
Aleksandr Levchuk 28:10

Bilginize Bu önerilerin çoğunun çalışmamasının nedeni, ssh'nin kullanıcının kabuğuna bir argüman olarak geçirerek herhangi bir komutu yerine getirmesidir. Session.c dosyasında execute arayın. Kullanıcının kabuğuna yapılan bu çağrının argümanlarını değiştirmenin / eklemenin / silmenin bir yolu yoktur.
Mark Wagner

Yanıtlar:


37

Çıkış bölümünüz .bashrcyürütülmeden önce iptal (ctrl + C) yapmayı deneyebilirsiniz .

Aşağıdakileri bir testörün bashrc'sinin üstüne ekleyerek denedim, işe yarıyor, bu sadece zamanlama meselesi. Benim durumumda çok kolay:

sleep 3
echo "Too late... bye"
exit 0

8
+1, çünkü sistem yöneticisinden yardım gerektirmeyen tek çözüm budur. Bununla birlikte, doğru zamanlamaya sahip olmak için çok fazla şans gerekir (ssh -v host biraz yardımcı olabilir).
JooMing

Aslında ctrl + C işe yaradı. Uyumadan bile. Bashrc benim "çıkış" yerleştirdi ve yaklaşık 4 denemelerden sonra hızlı bir ctrl + C ile kurtarmak mümkün oldu. Lütfen bazı cevabı düzeltin, böylece "-1" i "+1" olarak değiştirebilirim.
Aleksandr Levchuk

@ Aleksandr Levchuk yapıldı
kabuklu

4
Buradaki acayip gülünç düşük teknoloji ve acımasız etkinliğin birleşimini çok takdir ediyorum.
unixtippse

1
Deli gibi gülüyorum, sonunda işe yaradığında acele ettim. Thanks @JooMing, burada tüm yöntemleri denedim serverfault.com/questions/94503/… Ctrl + C tuşlarına basan bile olsa, ancak yalnızca -v seçeneğini ekledikten sonra çalıştı!
mxmlnkn

12

Deneme erişimine sahip olduğum yeni bir kümede .bashrc dosyamı da karıştırmayı başardım. Noob gibi görünmek istemem, yapmak istediğim son şey yöneticilerden yardım istemek ve çalışmak için iyi zamanlanmış bir ^ + C bulamadım.
Ne işe yaradıysa, ssh'ye son bir argüman olarak bir 'rm' komutu göndermekti. yani

ssh -tv user@host rm .bashrc

Çalışmak için 'mv' komutunu alamadım (-t olmadan denendi), bu yüzden -t seçeneğinin yapmış olması gerektiğini düşünüyorum, ancak isterseniz test edebilirsiniz. Ben şimdi .bashrc ~ dosyasından (vim tarafından yapılan) her şeyi düzelttim, ancak söz konusu tehlikeli çizgi ve her şey dünyada doğru! = D


2
ssh -tv user@home mv .bashrc .bashrc-oldbenim için çalıştı
Kod Komutanı

3

Farklı bir kullanıcı olarak giriş yapabilirseniz, şunu deneyin:

su user -s /bin/sh

Elbette şifrenize ihtiyacınız olacak.


1
sh tabanlı bir kabuk değil farklı deneyebilirsiniz: kshveyacsh
Hubert Kario

3

Böyle kötü deneyimlerimi hatırlarsam, ssh, scp, sftp başlatma dosyalarını çalıştırıyor gibi görünüyor.

Önerim basit FTP kullanmak ve daha sonra oturum açtıktan sonra FTP komut satırındaki hatalı dosyayı silmek veya yeniden adlandırmaktır. Sisteminizin size FTP erişimine izin vereceğini varsayıyorum. Böyle bir durumda, onarımı tamamladığınızda şifrenizi (güvenli bir şekilde) değiştirdiğinizden emin olun.


Filezilla bunun için mükemmel çalıştı. Sadece "Sunucu" menüsünü indirmeli ve "Gizli dosyaları göster zorla" ayarını seçmelisiniz.
Danny G,

1

Kimden man ssh( OpenSSH_5.6p1en azından ne zaman eklendiğinden emin değil),

~/.ssh/rc
        Commands in this file are executed by ssh when the user logs in, just
        before the user's shell (or command) is started.  See the sshd(8) manual
        page for more information.

..dahası ~/.ssh/rcaşağıdakileri içeren oluşturabileceğiniz anlamına gelir :

mv ~/.bashrc ~/bak.bashrc

Daha sonra, giriş yaptığınızda ssh, sorunlu bashrc giriş kabuğuna basılmadan önce dışına çıkar - daha sonra açıkça düzeltebilir bak.bashrcve tekrar yerine yerleştirebilirsiniz.


0

SCP veya SFTP ile bağlanın ve .bashrc dosyanızı bu şekilde düzenleyin / yeniden adlandırın / silin. Edit - D'oh, Görüyorum ki bunu denediniz. Oh iyi.


0

Aynı problemi yaşadım ve bir şekilde bunu çözebildi. Sisteme erişmek için ssh kullandım ve sisteme girdiğimde Ctrl + c tuşlarına basıp tuttum. Sonra, ~ / .bashrc okunmadı ve değiştirebildim.


1
Burada en çok oy alan cevabın tam kopyası
pauska

0

Bunu çalışırken buldum.

Grubun önyükleyicisini e ... 'ye basarak durdurun, grub yükleme satırlarına girmek için e tuşuna tekrar basın, tekrar çekirdek satırını düzenlemek için e tuşuna basın,

çizginin sonuna gitmek;

satırın sonuna init = / bin / bash komutunu ekleyin,

geri dönmek için b girin, önyüklemek için b

bir bash kabuğu açacak, vim /root/.bashrc dosyasını açacak ve uygun şekilde düzenleyecektir. çık ve şimdi u giriş yapabileceksiniz



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.