下载中心 | 网站地图 | 站内搜索 | 加入收藏

安恒公司 / 技术文章 / 安恒公司网管员手记 / 安恒网管员手记: vpopmail的密码自学习功能

2004-08-09 刘世伟  阅:    下页:
安恒网管员手记: vpopmail的密码自学习功能

https://anheng.com.cn/news/html/net_admin_blog/378.html 


[安恒原创]
转载请注明出处  
 http://www.anheng.com.cn/news/15/378.html

vpopmail*个密码自学习功能,就是在建立信箱时,密码设为空,就会从客户端学习密码,也就是第*个pop3连上来的密码,会被纪录并在以后的认证中使用。
可以通过察看vpasswd文件来看到这个过程。
在编译vpopmail时通过 --enable-learn-passwords=y 来打开这个功能。

遗憾的是这个功能只能在新建邮件账号时使用,在修改密码时不能用。
http://www.anheng.com.cn/news/15/378.html
我修改了*下源代码,是vpopmail在修改密码时也可以开启密码学习功能,大大方便了网管员.需要修改2个文件,给vpasswd命令增加了1个命令行参数 -n 空密码

https://anheng.com.cn/news/html/net_admin_blog/378.html 

下面是patch,在vpopmail源代码目录下执行patch <nulpasswd.patch
=====================nulpasswd.patch

https://anheng.com.cn/news/html/net_admin_blog/378.html 

diff -u ../vpopmail-5.4.5/vpasswd.c ./vpasswd.c
--- ../vpopmail-5.4.5/vpasswd.c 2003-10-08 05:16:40.000000 +0800
+++ ./vpasswd.c 2004-09-09 08:58:01.000000000 +0800
@@ -39,6 +39,8 @@
 char Passwd[MAX_BUFF];
 int apop;
 int RandomPw;
+int NoPassword=0;
+

 void usage();
 void get_options(int argc,char **argv);
@@ -54,7 +56,8 @@
             vexit(i);
         }

-       if ( strlen(Passwd) <= 0 ) {
+       if (( strlen(Passwd)) <= 0 && (NoPassword==0)) {
+
                snprintf(Passwd, sizeof(Passwd), "%s", vgetpasswd(Email));
        }

@@ -72,6 +75,7 @@
        printf("vpasswd: usage: [options] email_address [password]\n");
        printf("options: -v (print version number)\n");
        printf("         -r generate a random password\n");
+        printf("         -n no_password\n");
 }

 void get_options(int argc,char **argv)
@@ -87,7 +91,7 @@
        RandomPw = 0;

        errflag = 0;
-    while( !errflag && (c=getopt(argc,argv,"vr")) != -1 ) {
+    while( !errflag && (c=getopt(argc,argv,"vrn")) != -1 ) {
                switch(c) {
                        case 'v':
                                printf("version: %s\n", VERSION);
@@ -96,6 +100,11 @@
                                RandomPw = 1;
                                vrandom_pass (Passwd, 8);
                                break;
+                       case 'n':
+                               memset(Passwd, 0, sizeof(Passwd));
+                               NoPassword = 1;
+                               break;
;==========================over 

下页:   

相关文章
qmail错误: CNAME_lookup_failed_temporarily._ #4.4.3 - 16-02-25 - 阅读: 134553
linux下使用ssd - 11-03-10 - 阅读: 282972
btrfs试用 --安恒网管员手记 - 11-01-17 - 阅读: 268307
qmail-smtp增加smtp-auth认证 - 11-01-09 - 阅读: 189789
关于EtherScope II系列网络通Linux系统的几个常见问题(ES2-LAN,ES2-WLAN,ES2-PRO,ES2-LAN-SX/I,ES2-PRO-SX - 10-02-25 - 阅读: 234745
在linux下用bt协议修复远程的文件 - 09-03-13 - 阅读: 188480
linux下利用badblocks程序在线修复坏道 - 08-12-26 - 阅读: 218470
Hp 激光打印机 P1008在linux下的驱动 - 08-01-16 - 阅读: 252997
linux下的视频设备的复用 - 07-12-21 - 阅读: 184281
多款设备采用Qtopia软件,奇趣科技统领VoIP设备Linux开发平台 - 07-12-17 - 阅读: 246479
debian下的无盘linux系统安装要点 - 07-12-09 - 阅读: 218401
qmail 白*单功能以及iptables防火墙联动 - 07-10-17 - 阅读: 208210
Drupal-chatroom中文乱码 --安恒网管员手记 - 07-06-05 - 阅读: 246120
linux下的后门检查程序rkhunter和杀毒程序clamav - 07-04-22 - 阅读: 311304
debian下安装qmail+clamav+webmail - 07-04-03 - 阅读: 240989
linux下读写ntfs分区中文编码问题 - 07-03-11 - 阅读: 238953
linux下的DV磁带视频采集和dvd刻录 - 07-02-13 - 阅读: 219979
linux内核虚拟机 kvm - 07-01-05 - 阅读: 299346
在debian下用eaccelerator加速php性能 --安恒网管员手记 - 06-06-28 - 阅读: 307088
利用内存磁盘加速mysql --安恒网管员手记 - 06-06-26 - 阅读: 264568

Email给朋友 打印本文
版权所有·安恒公司 Copyright © 2004   ul.anheng.com.cn   All Rights Reserved    
北京市海淀区*体南路9号 主语国际商务中心4号楼8层 (邮编100048) 电话:010-88018877