|
在pam-radius模块的代码中看到PW_PASSWORD_REQUEST PW_PASSWORD_ACK 和 PW_PASSWORD_REJECT三个命令字,还有PW_OLD_PASSWORD属性,而且还看到了pam-radius模块中的pam_sm_chauthtok接口,以为一般radius服务器应该支持修改密码功能,于是仿照pam-radius模块的代码,自己写了个修改密码的函数,然后和我本机搭建的freeradius服务器连接,结果,虽然服务器认识PASSWORD-REQUEST命令,但一直接收不到返回信息,freeradius服务器输出"忽略"字样,看来是freeradius服务器将PASSWORD-REQUEST报文的包静默丢弃了,一直不解,明明在头文件中有这个命令,为何会被静默丢弃呢?google无果后,便去查看freeradius的源代码,终于,在src/main/radiusd.c中看到了端倪: 在该文件中有如下一段代码和注释: case PW_PASSWORD_REQUEST: RAD_SNMP_INC(rad_snmp.auth.total_unknown_types);
/* * We don't support this anymore. */ radlog(L_ERR, "Deprecated password change request from client %s:%d - ID %d : IGNORED", client_name(packet->src_ipaddr), packet->src_port, packet->id); return NULL; break; 这次终于死心了,源代码中明确表示不支持修改密码操作. ps:freeradius版本为1.1.3版
|