Başlangıçta passwd --delete <username>
güvensiz olan bu soru : bununla birlikte, şifrelenmiş şifre alanı /etc/shadow
tamamen boş olacaktır.
username::...
sshd
Parola kimlik doğrulamasını reddetmek üzere yapılandırdıysanız, bu SSH için güvenlidir ... Ancak sisteminizdeki başka bir hizmet parola kimlik doğrulaması kullanıyorsa ve boş parolaları reddetmek üzere yapılandırılmamışsa, bu parola olmadan erişime izin verir! Bunu istemiyorsun.
adduser --disabled-passwd
/etc/shadow
şifrelenmiş parola alanının yalnızca bir yıldız işareti olduğu bir giriş üretecektir;
username:*:...
Bu "asla başarılı bir şekilde girilemeyen şifreli bir paroladır", yani bu, hesabın geçerli olduğu ve teknik olarak oturum açmaya izin verdiği anlamına gelir, ancak parola ile kimlik doğrulamasının başarılı olmasını imkansız hale getirir . Dolayısıyla, sunucunuzda başka bir şifre kimlik doğrulaması tabanlı hizmetiniz varsa, bu kullanıcı bunlardan engellenir.
Bu sistemde sistem parolası dosyalarını kullanan herhangi bir hizmet için yalnızca standart hesap parolası dışında bir şey kullanan kimlik doğrulama yöntemleri (örn. SSH anahtarları) çalışır. Yalnızca SSH anahtarlarıyla oturum açabilen bir kullanıcıya ihtiyacınız olduğunda, istediğiniz şey budur.
Mevcut bir hesabı bu duruma ayarlamanız gerekirse, bu komutu kullanabilirsiniz:
echo 'username:*' | chpasswd -e
Şifrelenmiş parola alanı için üçüncü bir özel değer vardır: adduser --disabled-login
alan yalnızca tek bir ünlem işareti içerir.
username:!:...
Yıldız işareti gibi, bu da parola kimlik doğrulamasının başarılı olmasını imkansız hale getirir, ancak ek bir anlamı da vardır: parolayı bazı yönetim araçları için "kilitli" olarak işaretler. passwd -l
mevcut şifre karmasının önüne bir ünlem işareti ekleyerek aynı etkiye sahiptir, bu da yine şifre kimlik doğrulamasının kullanımını imkansız hale getirir.
Ama burada dikkatsizlik için bir tuzak: 2008 passwd
yılında, eski shadow
paketten gelen komutun sürümü, passwd -l
"hesabı kilitleme" den sadece "şifreyi kilitleme" ye yeniden tanımlamak için değiştirildi . Belirtilen neden "diğer passwd sürümüyle uyumluluk için" dir.
(Benim gibi) bunu uzun zaman önce öğrendiysen, bu kötü bir sürpriz olabilir. adduser(8)
Görünüşe göre henüz bu ayrımın farkında olmayan konulara da yardımcı olmuyor.
Devre dışı bırakır parçası hesabını kimlik doğrulama tüm yöntemleri için aslında hesap için 1 bir son kullanma tarihi değerini girer: usermod --expiredate 1 <username>
. 2008 yılından önce, passwd -l
bu , şifreyi bir ünlem işaretiyle öneklemenin yanı sıra,shadow
bunu yapmak için kullanılan kaynak kitinden kaynaklanır - ancak artık bunu yapmaz.
Debian paket değişikliği günlüğü şunları söylüyor:
- debian / patches / 494_passwd_lock-no_account_lock: passwd -l'nin (# 389183'te değiştirilen) önceki davranışını geri yükle: kullanıcının hesabını değil, yalnızca kullanıcının parolasını kilitleyin. Ayrıca farklılıkları açıkça belgeleyin. Bu, passwd'nin önceki sürümleriyle ve diğer uygulamalarla ortak bir davranışı geri yükler. Kapatır: # 492307
İçin hata geçmişleri Debian hata 492.307 ve hata 389183 Bunun arkasındaki düşünce anlamaya yardımcı olabilir.
sudo
erişim için şifrelerine ihtiyaç duymadıkları sürece (ya hiç sudo izinlerine sahip olmamaları ya da sudo izinlerine sahip olmaları nedeniyleNOPASSWD
), seçtiğiniz yanıt uygun olmalıdır. Bu soruna sudo endişesini eklemek için bir düzenleme gönderdim, ancak bu arada burada size çağıracağımı düşündüm.