/bin/false
/bin/true
unix'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/true
her zaman boole olarak değerlendirecek olan BASH deyimini düşünün .$? = 0
/some/program
Belirttiğiniz /bin/false
gibi, 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/nologin
benzer davranışı olan /bin/false
(boolean false döndürür), ancak çıktı /bin/false
alması 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/nologin
içinde /etc/shells
. Bunun standart etkisi, kullanıcılar kendi kabuklarını değiştirirken /etc/shells
kullanı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/nologin
ve /bin/false
de /etc/rsh
kullanarak kabuk değiştirmesini bu kabuklar kullanıcılara yasaklamak, hangi chsh
onlar 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 scp
da geçersiz bir kabukla çalışmaz. scponly
Bu durumda bir kabuk olarak kullanılabilir.
Ek olarak, kabuk seçimi su -
(AKA su -l
) çalışmasını etkiler . Özellikle, /sbin/nologin
kabuk çıktısı stdout'a basılacaktır; bu durum böyle olamaz /bin/false
. Her iki durumda da komutları çalıştırmak su -cl
baş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/nologin
olduğunu /etc/shells
hangi noktada kullanması gereken nokta, /bin/false
olmamalı ki,). Bunun yerine, parola alanını ayarlamak /etc/passwd
için !
güvencesindedir, crypt
hiçbir şifreler için geçerli olması. /etc/shadow
Hataları önlemek için karmayı aynı şekilde ayarlamayı düşünün . passwd -l
bunu 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.