~/.profile
Uzak bir Linux sunucusuna ssh veya macun kullanarak giriş yaparken uygulanmasını atlamanın veya engellemenin bir yolu var mı ?
~/.profile
Uzak bir Linux sunucusuna ssh veya macun kullanarak giriş yaparken uygulanmasını atlamanın veya engellemenin bir yolu var mı ?
Yanıtlar:
Eğer tüm giriş komut dosyalarını devre dışı bırakmak için arıyorsanız, kullanabileceğiniz --noprofile
devre dışı bayrağı /etc/profile
, ~/.profile
vs. ve --norc
devre dışı etmek ~/.bashrc
şöyle:
$ ssh 127.0.0.1 "bash --noprofile --norc"
Varsa, alternatif bir kabuk da başlatabileceğinizi unutmayın. Bunu karıştırdıktan sonra kullanmak zorunda kaldım chsh
:
$ ssh 127.0.0.1 sh
Bu büyük olasılıkla sizi boş bir kabuğa düşürecektir (istem yok), bu yüzden ls
çalıştığından emin olmak için ona bir veriniz .
Hedef makineniz bir bash kabuğundaysa:
user@host:/$ ssh hostname "bash --noprofile"
Alternatif olarak, kullanmak istediğiniz başka bir profil varsa
user@host:/$ ssh hostname "bash --noprofile; source ~/.other_profile"
Ayrıca, hatalı giriş dosyasını silmek için WinSCP gibi bir FTP programı kullanmayı deneyin. Bu atılacak, ancak en azından varsayılan kabukta oturum açabilmelisin.
Diğerlerinin de belirttiği gibi, bağlantıyı başlattığınızda bayrakla bash yapmak --noprofile
işe yarayacaktır, ancak farklı bir kabuk kullanıyorsanız bu seçenek olabilir veya olmayabilir.
Bir alternatif, profil komut dosyasının bir SSH bağlantısını kendisi tespit etmesi ve buna göre davranmasıdır. SSH bağlantıları normalde bir dizi çevre değişkeni ayarlayacağından, bu kolayca kontrol edilebilir. Profilinizin başlangıcına aşağıdaki satırlara benzer bir şeyler eklemek yeterli olacaktır:
if [ "$SSH_CONNECTION" != "" ]; then
echo Logging in with ssh
return
else
echo Logging in with something that is not ssh
fi
# rest of your profile goes here
Bu return
, komut dosyasının geri kalanını atlar.$SSH_CONNECTION
bir SSH bağlantısı başlatılır zaman normalde yaratacağı ortam değişkeni ayarlanır. Aksi takdirde, profil normal şekilde çalışacaktır.
Bunun yalnızca etkilenen profil komut dosyasını atlayacağını unutmayın. Diğer tüm profil komut dosyaları (örneğin /etc/profile
:), siz onları benzer şekilde değiştirmediğiniz sürece işlenir.