Kökün kabuğunu varsayılandan başka bir şeye ayarlamak kötü bir uygulama mudur?


16

Bir arkadaşım (deneyimli bir Unix / Linux kullanıcısı) bana kök kökünü sh (yani bash veya zsh) dışında bir değere ayarlamanın sorun yaratabileceğini söyledi, çünkü bazı komut dosyaları kabuğun sh olduğunu ve garip bir şey yaptığını varsayabilir .

Ancak, Ubuntu'nun bash için varsayılan kök kabuğuna sahip olduğunu düşünüyorum ve Gentoo da bash kullanıyor. Birisi efsaneyi kırabilir mi?

Yanıtlar:


12

Evet. Sistem önyükleme sırasında başarısız olursa, kök kabuğuna giriş yapabilirsiniz. Ayrı / usr'niz varsa, bazı mermiler başarıyla başlatılamayabilir.

toorVarsayılan kabuk ile sol kök iken standart olmayan kabuk ile hesap (uid 0, gid 0) oluşturmanızı tavsiye ederim .


Bu FBSD 7.2'den 8.0'a yükselttiğimde ve yeniden kurmayı unuttuğumda başıma geldi bash. Düzeltmek için tek kullanıcı modunda önyükleme yaptım, ancak sadece 's' çatalı ile /bin/shbağlantılı olduğu için çalışmıyordu . FBSDbournebash
gvkv

sadece işleri daha net yapmak için, eğer yüklersem zshve bir şekilde /usrhasar görürsem sorun yaşayacağım? ama benim sistemim /bin/shişaret ediyor /bin/bashve bashkendisini neden shetkilemesin ki?
phunehehe

1
Kök varsayılan değerleri sistemin önyükleneceğini garanti eder - yükseltme kılavuzu en azından kökte oturum açabilmeye özen gösterir. Ancak başka hiçbir şey için durum böyle olmayabilir. Çözüm kök hesabı günlük kullanım için varsayılan olmayan kabuk ile toor tarafından çoğaltmak ve kök olduğu gibi tutmaktır.
Maciej Piechotka

1
zsh/usr/bin/yanlış takılmışsa içinde olmamalıdır . tüm kabukları olmalı/bin
xenoterracide

1
@xenoterracide: Gentoo'da zsh var /binama bazı dosyaları içeri tutuyor /usr/share. Ayrıca açıkça sorun sırasında olduğunu belirtti giriş (bazı servis başarısız olduğunda) açılışı sırasında.
Maciej Piechotka

7

Bir sorun olmamalı.

Kabuk-komut dosyası dosyaları hangi kabukla yürütüldüklerini açıkça kodlar. İlk satırda kodlanır veya diğer programlar veya komut dosyaları belirli bir kabuk yürütür ve kabuk komut dosyasını bağımsız değişken olarak verir.

Kullanıcı hesabı kabuk bilgilerini (giriş işleminin yanı sıra) kullanan düşünebildiğim tek program procmail'dir. Kullanıcınız posta sunucusunda shell / bin / false olarak ayarlanmışsa gerçekten komik ... Ancak genellikle procmail'i root olarak çalıştırmazsınız.

Başka bir aday kök crontabındaki çizgiler olacaktır. Hangi kabuğu kullanacağım crond politikasının ne olduğunu bilmiyorum.


$ SHELL, başlangıçta crondaemon tarafından genellikle / bin / sh olarak ayarlanır.
echox

3

Bourne kabuğu için yazılmış komut dosyaları çoğu zaman BASH veya ZSH veya $ foo'ya karşı sorunsuz çalışır.

Birçok Linux sisteminde orijinal sh yüklü değildir, bunun yerine genellikle / bin / bash'a karşı bir sembolik bağlantı vardır.

Bazı komut dosyaları kabuğun açıkça sh olduğunu "varsayarsa", yeniden yazılmalıdır. Senaryonuzun hangi tercümana ihtiyacı olduğunu seçmek için bir mekanizma mekanizması vardır. Sh ise, komut dosyası #!/bin/shilk satırı içermelidir .

Varsayılan kabuk ayarınız bu bağlamda alakalı olmamalıdır.


2

Kök kabuğunun değiştirilmesinin herhangi bir soruna neden olacağını sanmıyorum. Kök için varsayılan kabuk olarak tcsh sahip bazı unices (belki bazı BSD varyantları?) Hatırlıyorum.

Kök girişleri zaten nadirdir. Normalde, kendi hesabınıza giriş yaparsınız ve daha sonra root yapmak için su veya sudo yazarsınız.

Önemli olan, kök kabuğunun bir sistem onarım bağlamında kullanılabilmesi için mümkün olduğunca az bağımlılığa sahip olması gerektiğidir. Örneğin, statik olarak bağlı bir kök kabuğa sahip olmak iyi bir fikirdir; bazı dağıtımlar bash veya zsh'nin statik olarak bağlı bir sürümünü gönderir veya Kanat (yerleşik birçok standart ekipmana sahip bir kabuk). Ancak, sisteminiz bir kurtarma CD'sinden veya USB sürücüsünden kolayca önyüklenebilirse bu çok önemli değildir.


Bağımlılık nedeniyle, büyük bir sistem modifikasyonu (yükseltme gibi) işleri karıştırmayacak şekilde kabuğu olduğu gibi bırakmanın mantıklı olduğunu düşünüyorum. Canlı bir CD veya USB ile düzeltmenin kolay olduğunu kabul ediyorum, ancak ilk başta düzeltmem gerekmiyor.
phunehehe

1

Kullanıcının oturum açma kabuğu önyükleme işlemini etkilemez. Bu kabuğu istediğiniz gibi ayarlayabilirsiniz. Tüm sistemlerde bash yoktur ve iyi çalışırlar. Ayrıca /usr/bin/zshyanlış takılmışsa, tüm sistem kabukları içinde olmalıdır /bin. Bununla birlikte, /bin/shvarsayılandan başka bir şeye işaret etmemelisiniz (ne yaptığınızı bilmiyorsanız), #!/bin/shgenellikle #!/bin/bashbash'ı işaret eden birçok komut dosyası vardır , çünkü ne zaman olması gerekir, çünkü bashisms ve diğer davranışları kullanmazlar üzerinde çalışmak zshveya dash.


ayy üzgünüm aslında bilgisayarımda bir hata yaptım bashve zshiçinde/bin
phunehehe

0

Kök için varsayılan kabuk olarak bash var . Bir süre zsh kullandım ama sonra bash . Kullandığınız kabuk çok önemli değil.

Birden fazla kişinin root erişimi varsa, bu sadece bir sorundur. Bu durumda, en yaygın olarak kullanılan kabuk olduğu için genellikle bash olan bir 'ortak payda' seçebilirsiniz.


0

Solaris getirmedi / illumos Solaris Kök Shell Mini SSS söz

Bazı sistem yöneticileri
Solaris sistemlerinde kök kabuğunun değiştirilmesine karşı hala önerilmektedir . Nedenini sorun ve
root'un
/ usr / lib altındaki dinamik kitaplıklara bağımlı olmayan statik olarak bağlı bir kabuğa ihtiyacı olduğu söylenebilir . Bu geçmişte doğruydu ama
bugün böyle olması gerekmez. Solaris, doğru şekilde yapılandırıldığında, Unix'in diğer herhangi bir sürümüne benzer ve kök veya başka bir hesap için tanımladığınız kabukları destekleyebilir.

Yani, evet, Solaris veya illumos kullanıyorsanız, dışında mermi kullanmak iyidir sh.

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.