- 论坛徽章:
- 0
|
上午发在高级应用版的,转到安全版本比较合适
首先你的对pam有所了解,然后是对linux登陆流程有所了解.
linux登陆流程简单说来可以这样理解.
假如你按下alt+F2, 那么gettty就得到这个信息.(getty的起动是由/etc/inittab控制的).getty随后调用login进程,login进程要求输入用户名和密码.并且把密码和用户名提交给pam系统验证(pam对login程序的验证步骤或者说方法可以由/etc/pam.d/login来设置).
pam系统把验证结果返回给login进程.然后login进程就会起动该用户的shell.比如bash.
关键就是在pam这一步,要怎么验证这都是你自己可以控制的,我的作法是用一个pamusb模块来替换口令模块.当然也可以配合使用.
pamusb的验证机制是用公钥密钥体系来完成的,简单说来就是在机器上放入公钥,u盘里放入密钥,密钥可以被加密.
现在登陆的流程是,假如你没有给密钥设置密码,那么登陆的时候,插入u盘,然后输入用户名就可以直接登陆了.如果密钥有密码的话,就要输入密码.
就这么简单.
有兴趣的朋友可以参考www.pamusb.org上的资料自己去搞.
我自己的系统我只测试了login和xdm,可以正常使用. |
|