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 chsh
komutu 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/passwd
Son girişin varsayılan kabuk olduğu yeri düzenlersiniz . Make it /bin/bash
.
Alternatif olarak, /bin/sh
bash olmamasının sistem varsayılanını değiştirebilirsin .
/bin/sh
olma /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/passwd
kesinlikle ö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. usermod
Değişim gibi araçlar var /etc/passwd
.
/etc/passwd
.
/bin/bash
olarak 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/bash
Bütün o makinelerde kabuğum olarak kullanıyorum . Daha somut bir tartışmaya ihtiyacın var.
/bin/sh
Ubuntu’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, bash
herhangi bir kullanıcı ayarını (no chsh
veya 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ü dash
daha 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ü bash
desteklemedikleri 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/sh
POSIX uyumlu kabuk komut dosyaları için tercüman olarak kullanılır - mutlaka en iyi etkileşimli kabuk değildir; İsterseniz bash
sistem kabuğu olmak, kendi kullanarak tercih giriş kabuğu belirlesin chsh
veya uygun adduser
aramaları. dpkg-reconfigure
userA 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.
zsh
ve userB buna sahipse bash
. UserC tarafından yapılandırılmışsa sh
, bash
yine de yeni kullanıcılar için varsayılan Ubuntu varsayılanı olacaktır
dpkg-reconfigure zsh
ayarlamak zsh
gibi 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 dash
dash
dpkg-reconfigure dash
yapabilirsiniz sh
gelin bash
yerine 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
-l
seçenek?