Evet, oldukça nadir olmasına rağmen, bu kesinlikle yapılabilir.
Varsayılan /etc/password
/etc/shadow
tabanlı kimlik doğrulama yöntemi olarak kendiniz uygulamaya çalışmak yerine, böyle bir yapılandırma için bir hükme sahip değildir, daha basit yol, kimlik doğrulamasını bir kullanıcı için zaten çok sayıda parola destekleyen bir arka uçta devretmektir.
İyi bilinen bir tanesidir LDAP olan userPassword
göre birden çok değerli bir özelliği, RFC4519 :
'UserPassword' özniteliğinde birden fazla değere ihtiyaç duyulmasının bir örneği, kullanıcının her ay bazı otomatik sistem tarafından oluşturulan farklı bir parola kullanması beklenen bir ortamdır. Geçiş dönemlerinde, dönemlerin son ve ilk günü gibi, sistemde geçerli olan iki dönemin iki şifresine izin verilmesi gerekebilir.
Bu RFC'ye rağmen, bu ayarın gerçekten kabul edilmesi için çoğu dizin sunucusu uygulamasındaki şifre politikası yapılandırmasını değiştirmeniz gerekecektir.
Linux tarafında, hiçbir şey yasakladığı bunu yapmak için (burada adlandırılmış bir hesap testuser
hem verildi pass1
ve pass2
olarak userPassword
öznitelik değerleri):
$ uname -a
Linux lx-vb 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:16:28 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
$ grep VERSION /etc/os-release
VERSION="13.04, Raring Ringtail"
$ grep "^passwd" /etc/nsswitch.conf
passwd: files ldap
$ ldapsearch -LLL -h localhost -p 1389 -D "cn=directory manager" -w xxxxxxxx "uid=testuser" userPassword
dn: uid=testuser,ou=People,dc=example,dc=com
userPassword:: e1NTSEF9b2JWYXFDcjhNQmNJVXZXVHMzbE40SFlReStldC9XNFZ0NU4yRmc9PQ==
userPassword:: e1NTSEF9eDlnRGZ5b0NhKzNROTIzOTFha1NiR2VTMFJabjNKSWYyNkN3cUE9PQ==
$ grep testuser /etc/passwd
$ getent passwd testuser
testuser:*:12345:12345:ldap test user:/home/testuser:/bin/sh
$ sshpass -p pass1 ssh testuser@localhost id
uid=12345(testuser) gid=12345 groups=12345
$ sshpass -p pass2 ssh testuser@localhost id
uid=12345(testuser) gid=12345 groups=12345
$ sshpass -p pass3 ssh testuser@localhost id
Permission denied, please try again.
İşte bu tür bir yapılandırmanın teknik ve güvenlikle ilgili bazı etkileri:
- Kullanıcı hesabı açıkça saldırılara karşı daha savunmasız olacak, ancak asıl önemi parolaların sayı ve sayısından daha fazla kalite ve korunması.
- çoğu yardımcı program kullanıcının tek bir parolaya sahip olduğunu varsayar; bu nedenle, kullanıcının parolalardan birini tek tek güncelleştirmesine izin vermez. Parola değişikliği daha sonra kullanıcı için tek bir parola özelliğine neden olur.
- amaç, birden fazla kişinin her birinin kendi şifresini kullanarak aynı hesabı paylaşmasına izin vermekse, kullanılan şifreye göre kimin giriş yaptığını tanımlamak için hiçbir mekanizma yoktur.
sudo
user1'in user2 olarak komutları çalıştırmasına izin verecek şekilde kurulurdum. (sudo
yalnızca komutları root olarak çalıştırmak için değildir; komutları herhangi bir kullanıcı olarak çalıştırabilir.)