/bin/false/bin/trueunix'in özelliklerin eksiksiz olmasını sağlamak için bazı soyut anlamda faydalı olan bir yardımcı programdır . Bununla birlikte, bu programlar için ortaya çıkan amaçlar bulunmuştur; geri dönüşü ne olursa olsun, /some/program || /bin/trueher zaman boole olarak değerlendirecek olan BASH deyimini düşünün .$? = 0/some/program
Belirttiğiniz /bin/falsegibi, ortaya çıkmış bir kullanım, kullanıcıların giriş yapmasına izin verilmeyen boş bir kabuk gibidir. Bu durumda, sistem tam olarak çalışmamış gibi davranır.
POSIX (yanlış olabilirim ve SUS olabilir), bu komutun her ikisini de, uygun boolean değerini döndürmekten başka hiçbir şey yapmamaya zorlar.
/sbin/nologinbenzer davranışı olan /bin/false(boolean false döndürür), ancak çıktı /bin/falsealması yasak olan bir BSD yardımcı programıdır . Bunun, kullanıcının ne olduğunu anlamasına yardımcı olması gerekir, ancak pratikte birçok terminal emülatörü, kabuk sona erdiğinde basitçe kapanacak ve mesajı bazı durumlarda okunaksız hale getirecektir.
Listeye küçük amaç yoktur /sbin/nologiniçinde /etc/shells. Bunun standart etkisi, kullanıcılar kendi kabuklarını değiştirirken /etc/shellskullanılabilecekleri izin verilen programları listelemektir chsh(ve kendi kabuğunuzu değiştirmek için makul bir neden yoktur /sbin/nologin). Süper kullanıcı herhangi birinin kabuğunu herhangi bir şeye değiştirebilir. Ancak, her iki listelemek isteyebilirsiniz /sbin/nologinve /bin/falsede /etc/rshkullanarak kabuk değiştirmesini bu kabuklar kullanıcılara yasaklamak, hangi chshonlar bir kabuk elde talihsiz olay.
FTP servetleri / etc / shells içinde olmayan bir kabuğa sahip kullanıcılara erişimi engelleyebilir veya istedikleri herhangi bir mantığı kullanabilirler. FTP çalıştırmadan kaçınılması gerekir, çünkü sftp(benzer işlevler sağlar) benzer fakat güvenlidir. Bazı siteler /sbin/nologin, kabuk erişimini devre dışı bırakmak için sftp erişimine izin verirken kullanır /etc/shells. Kullanıcının cronjobs oluşturmasına izin verilirse, bu bir arka kapı açabilir.
Her iki durumda scpda geçersiz bir kabukla çalışmaz. scponlyBu durumda bir kabuk olarak kullanılabilir.
Ek olarak, kabuk seçimi su -(AKA su -l) çalışmasını etkiler . Özellikle, /sbin/nologinkabuk çıktısı stdout'a basılacaktır; bu durum böyle olamaz /bin/false. Her iki durumda da komutları çalıştırmak su -clbaşarısız olur.
Sonunda, cevap:
Bir hesap devre dışı bırakmak için, bunların hiçbiri bağlıdır, bunlarla kabuğun ayarlanması /sbin/nologin(sürece bilgilendirme amaçlı /sbin/nologinolduğunu /etc/shellshangi noktada kullanması gereken nokta, /bin/falseolmamalı ki,). Bunun yerine, parola alanını ayarlamak /etc/passwdiçin !güvencesindedir, crypthiçbir şifreler için geçerli olması. /etc/shadowHataları önlemek için karmayı aynı şekilde ayarlamayı düşünün . passwd -lbunu senin için yapacağım.
Bir hesabı devre dışı bırakmanın üçüncü yolu, hesap son kullanma tarihi alanını eski bir tarihe (örn. usermod --expiredate 1) Ayarlamaktır . Bu, kurulumunuzun kullanıcıların unix hesaplarına parola olmadan kimlik doğrulaması yapmalarına izin vermesi ve kullandıkları hizmetin kabuk gerektirmemesi durumunda girişleri engelleyecektir.