Bir kullanıcı hesabına birden fazla şifre verebilir misiniz?


21

Tek bir hesaba 2 şifre atamak istiyorum. Bilmek istediğim şey 1) bu mümkün ve 2) bunun güvenlikle ilgili etkileri nelerdir?

Bunu yapmak istememin nedeni şu anda bazı yerel testler ile meşgul olduğum ve bazı özel durumlarda uygun olacağını düşündüm. Bazı araştırmalardan sonra PAM adlı bir şey buldum , ancak kurulum / konfigürasyonun nasıl çalıştığı hakkında bilgi bulmakta zorlanıyorum.

Ubuntu 12.04 kullanıyorum.


1
Muhtemelen sudouser1'in user2 olarak komutları çalıştırmasına izin verecek şekilde kurulurdum. ( sudoyalnızca komutları root olarak çalıştırmak için değildir; komutları herhangi bir kullanıcı olarak çalıştırabilir.)
cjm

Yanıtlar:


16

Evet, oldukça nadir olmasına rağmen, bu kesinlikle yapılabilir.

Varsayılan /etc/password /etc/shadowtabanlı 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 userPasswordgö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 testuserhem verildi pass1ve pass2olarak 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.

1
Lütfen bunun neden güvenlik etkisi olmadığını açıklayabilir misiniz? İlk izlenim, özellikle de bir şifre diğerinden önemli ölçüde zayıfsa, bir hesabın riske girme ihtimalini artıracağıydı.
Joseph R.

1
@JosephR. Haklısın. Ne önerdiğimi uyguladıktan ve onunla yaşadıktan sonra cevabımı yeni güncelledim
jlliagre

Mükemmel cevap, şimdi bir cazibe gibi çalışıyor. Thanks :)
aggregate1166877

7

/etc/shadowDosyadaki bir kullanıcı için 2 giriş oluşturmaya çalıştım ve çalışmadı. İlk giriş yapan ilk kullanılan şifre girişi oldu.

Örnek

Test kullanıcısı oluşturuldu.

$ useradd -d /home/newuser newuser

Şifreyi "super123" olarak ayarlayın:

$ passwd newuser

/etc/shadowDosyayı el ile düzenleyin ve ikinci bir giriş yaptı:

newuser:$6$....password #1...:15963:0:99999:7:::
newuser:$6$....password #2...:15963:0:99999:7:::

Ardından 2 şifreyi kullanarak hesapla giriş yapmayı deneyin.

su - newuser

İlk giriş /etc/shadow, ne kullanılırsa kullanılır, ikinci pozisyondaki giriş, eğer böyle çevirirseniz asla çalışmaz:

newuser:$6$....password #2...:15963:0:99999:7:::
newuser:$6$....password #1...:15963:0:99999:7:::

Sonra ikinci şifre çalışır ve ilki olmaz.

Sudo kullan

Bu yaklaşım tam bir kesmek, sadece kullanırdım sudo, kısmen sudovar olmasının nedeni bu .

Bu girişi, /etc/sudoerskullanıcının joe izninin sizin gibi bir şey yapmasına izin verecek sudoers dosyasına ( ) ekleyebilirsiniz :

joe ALL=(yourusername) ALL

Bunu sudoyapabileceğini gerçekten unuttum .. +1
aggregate1166877

4

Bunu yapabilirsen, muhtemelen yapmamalısın.

PAM konfigürasyonu biraz karmaşıktır ve kimlik doğrulama mekanizmaları hakkında tek bir gerçekçilik vardır: sınırlı sayıda doğru yapılandırma kümesi vardır, ancak sınırsız sayıda güvenli olmayan yapılandırma kümesi vardır. Bu, bir şeyi değiştirmeye çalışırsanız ve tam olarak ne yaptığınızı tam olarak bilmiyorsanız, şeyleri mahvedeceğinizden neredeyse kesindir.

Seçim, güvenlik ile "bazı özel durumlarda uygun" arasındaysa, ilkini tercih edin.


"Kolaylık güvenliği" için +1 (tamamen aynı fikirdeyim), ancak yalnızca deneyim için bile olsa her şeyi test etmek isteyen bir insanım, bu yüzden aradığım yanıtın% 100'ü değil.
aggregate1166877

2

Aynı hesap için her biri kendi şifresiyle iki farklı kullanıcı adı belirleyebilirsiniz. Run vipwdüzenlemeye /etc/passwdmanuel olarak ilgilendiğiniz hesap için mevcut hattını çoğaltmak ve adımı değiştirebilir (ve eğer gibi GECOS alanında , ev dizini ve kabuk). vipw -sBu kullanıcının satırını çalıştırın ve çoğaltın /etc/shadow. Yeni kullanıcı adıyla giriş yapın ve yeni kullanıcı adı passwdiçin şifreyi değiştirmek üzere çalıştırın . Artık aynı hesap için farklı şifrelerle iki farklı kullanıcı adınız var (kullanıcı kimliği hesabı belirleyen kullanıcı adıdır).

Bu muhtemelen iyi bir fikir değil. Ne yapmaya çalıştığınıza bağlı olarak, diğer yaklaşımlar daha uygun olabilir:

  • Başka bir hesap oluşturun ve sürüm kontrolünden ödün vererek ve teslim alarak dosya paylaşın.
  • Başka bir hesap oluşturun, her iki kullanıcı hesabının da ait olduğu bir grup oluşturun ve paylaşmak istediğiniz dosyalara gruba yazma izni verin.
  • Başka bir hesap oluşturun ve ilk hesaba sudo ile bu hesap gibi komutları çalıştırma hakkı verin:

    user1 ALL = (user2) ALL
    
  • Yalnızca belirli bir komutu çalıştırmaya izin veren hesap için bir SSH anahtarı oluşturun .

Bunu herehttp: //askubuntu.com/questions/567139/2-password-1-account-login 'a kopyalamayı düşünür müsün?
Rinzwind
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.