Barındırılan bir Debian sunucum var. Ssh ile giriş yaptığımda, sh ortamıyla karşılaşıyorum. Bunu nasıl değiştiririm, böylece sert bir ortamda başlayayım?
Barındırılan bir Debian sunucum var. Ssh ile giriş yaptığımda, sh ortamıyla karşılaşıyorum. Bunu nasıl değiştiririm, böylece sert bir ortamda başlayayım?
Yanıtlar:
Normal bir kullanıcı olarak, varsayılan giriş kabuğunuzu chshkomutu kullanarak değiştirebilirsiniz . İşte bir örnek:
chsh -s /bin/bash
Başka bir seçenek de usermod'u root olarak kullanmaktır:
usermod -s /bin/bash username
adduser, bu varsayılan olarak bash ayarlamalısınız. Varsayılan ayar olarak yapılandırılmıştır /etc/adduser.conf. Aksi takdirde, kabuğu açıkça ile belirtinuseradd .
/etc/passwdSon girişin varsayılan kabuk olduğu yeri düzenlersiniz . Make it /bin/bash.
Alternatif olarak, /bin/shbash olmamasının sistem varsayılanını değiştirebilirsin .
/bin/sholma /bin/dash. Ve buna değer ne olursa olsun, diğer iki cevap aynıdır ve aynı sonucu farklı yollarla elde eder. Her neyse.
/etc/passwdkesinlikle önerilmez. Düzenleme hatası, tüm kullanıcılar için girişleri bozabilir, bu da kurtarma ortamı veya onarımı için tek kullanıcı moduna önyükleme yapılmasını gerektirir. usermodDeğişim gibi araçlar var /etc/passwd.
/etc/passwd.
/bin/basholarak başlatılan başka bir not, istenmeyen sonuçlara yol açabilecek /bin/shşekilde çalıştırılması ile aynıdır --posix.
/bin/bashBütün o makinelerde kabuğum olarak kullanıyorum . Daha somut bir tartışmaya ihtiyacın var.
/bin/shUbuntu’nun son sürümlerinde varsayılan sistem kabuğu yapılandırıldı /bin/dash. Sadece aşağıdaki komutu çalıştırarak:
sudo dpkg-reconfigure dash
eski varsayılan ayarlarına geri döndürebilirsiniz /bin/bash.
Bununla, bashherhangi bir kullanıcı ayarını (no chshveya usermod) değiştirmeden etkileşimli kabuk olarak sahip olmak istediğiniz efekti elde edebilirsiniz , ve o anda kabuk ayarlı olan tüm kullanıcılar için işe yarayacaktır /bin/sh.
Bunun sadece bir dezavantajı var: Ubuntu önyükleme süresi hafifçe artabilir, çünkü dashdaha az bellek yüklenir ve biraz daha hızlı çalışır (şaşılacak bir şey yoktur - özelliklerde çok sınırlıdır). Ancak bu etkiyi, özellikle barındırma ortamı için ölçmenin oldukça zor olacağını düşünüyorum.
Ayrıca, düzgün çalışamayan kabuk komut dosyalarını görmek de can sıkıcıdır çünkü bashdesteklemedikleri bazı gelişmiş özellikleri kullanırlar dash. Bu tarifi kullanmak, bunun olmayacağından emin olacaktır.
Daha fazla bilgi için, bu konuda Ubuntu wiki'sine bakın .
/bin/shPOSIX uyumlu kabuk komut dosyaları için tercüman olarak kullanılır - mutlaka en iyi etkileşimli kabuk değildir; İsterseniz bashsistem kabuğu olmak, kendi kullanarak tercih giriş kabuğu belirlesin chshveya uygun adduseraramaları. dpkg-reconfigureuserA zsh ve userB bash isterse her ikisi de varsayılan kabuk olarak / bin / sh komutunu kullanmakta ısrar etmek isterse, kullanmak kötü bir seçimdir.
zshve userB buna sahipse bash. UserC tarafından yapılandırılmışsa sh, bashyine de yeni kullanıcılar için varsayılan Ubuntu varsayılanı olacaktır
dpkg-reconfigure zshayarlamak zshgibi bir şey önerdi ; Ben esas olarak, giriş kabuğunu / bin / sh'i iyi bir giriş kabuğu yapmak için çemberlerden geçmek yerine kullanmak istediği kabuğa ayarlamanın tercihli olduğunu söylüyorum. dpkg-reconfigure dashdash
dpkg-reconfigure dashyapabilirsiniz shgelin bashyerine sakat daha dash. Diğer tüm kabukları hala sağlam olacak.
Paylaşılan bir hesabı kullanmaya çalıştığınız durumda (ne olursa olsun) ve varsayılan kabuğu değiştiremiyorsanız, çalıştırabilirsiniz.
ssh -t <user@hostname> bash -l
Ortamınızı başka bir kabuktan korumanız gerekirse, önce o kabuğu çalıştırabilirsiniz; Örneğin
ssh -t <user@hostname> ksh -c bash -l
-lseçenek?