« Fedora Core 5 已经可以下载了 | Main | 关注短信猫(Wireless GSM/GPRS Modem) »
March 19, 2006
openssh PAM 认证时的用户自动创建解决方案
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。 https://windtear.net/archives/2006/03/19/000939.html http://windtear.net/archives/2006/03/19/000939.html openssh PAM 认证时的用户自动创建解决方案 上次blog提了一下研究的事: openssh PAM 认证时的用户自动创建问题研究 http://windtear.net/archives/2006/02/27/000925.html 后来确认了一下 没有现成的模块做这件事 所谓的模块也就是 /lib/security/pam_mkhomedir.so 不过这玩意显然不是能满足需求的东东 pam_mkhomedir.so 的用武之地在于已有用户(如LDAP/AD用户) 主要贡献只是帮用户建一个家目录 2006-03-07 那天周二 还是自己改代码写了个patch解决 因为实在找不到不patch代码的方案了 既然决定改代码就很简单了 就如上次提到的一样 相关的地方改一下就行了 auth2.c 的 authctxt->valid = 1; auth-pam.h 的 #define SSHD_PAM_SERVICE "rsasshd" 为了维护独立性 auth-pam.c 的 sshpam_query 判断一下 PAM_SUCCESS 并且本地没帐号 然后添加帐号 并作必要的记录就行了 (需要注意的也是基本的是申请内存记得释放) 另外从追求完美的角度 提示用户发生了什么也是必要的 logit("add user automatically %s",sshpam_authctxt->user); packet_disconnect("Your user account - %s added just now, please wait for next PASSCODE and relogin", sshpam_authctxt->user); 个人认为这个方案简单有效 而且改动也少 btw: 看 FC5 的 Release Notes 发现 FC5 采用了新的 PAM include 改动 比如: account required pam_stack.so service=system-auth 改为: account include system-auth (Linux-PAM 0.78 及其后版本以 include 指令替换了pam_stack 模块) 今天周日 就补写一下这个好了 3月份欠blog很多了 不好意思:( |
Posted by windtear at March 19, 2006 11:34 PM