我想为一个帐户分配2个密码。我想知道的是1)这是否可能,以及2)这对安全性有何影响?
我要这样做的原因是因为我目前正在忙于一些本地测试,所以我认为在某些特定情况下会很方便。经过一番研究,我发现了一种叫做PAM的东西,但是我一直在努力寻找有关安装/配置工作方式的信息。
我正在运行Ubuntu 12.04。
是的,尽管很少见,但这绝对是可行的。
无需尝试自己实现它,因为/etc/password
/etc/shadow
基于默认的身份验证方法没有提供这种配置,而是更简单的方法是将身份验证委派给已经支持用户多个密码的后端。
LDAP是一种众所周知的userPassword
属性,其属性根据RFC4519是多值的:
在'userPassword'属性中需要多个值的一个示例是一个环境,在该环境中,每月每个用户都希望使用某个自动化系统生成的不同密码。在过渡期间(如期间的最后一天和第一天),可能需要允许两个连续期间的两个密码在系统中有效。
尽管有此RFC,您可能仍需要在大多数目录服务器实现上更改密码策略配置,才能实际接受此设置。
在Linux方面,没有什么可以禁止的(这里testuser
既给了一个名为的帐户,又给了pass1
它pass2
作为userPassword
属性值):
$ 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.
这是这种配置的一些与技术和安全性相关的含义:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句