CentOS7上面运行的项目,在用户管理添加新用户时,密码设置成Aa12345@,报错?-灵析社区

万码JFG3236P

问题描述 CentOS7上面运行的项目,在用户管理添加新用户时,密码设置成Aa12345@时,会报Cannot read property 'message' of undefined的错误 问题出现的环境背景及自己尝试过哪些方法 在/etc/pam.d下的common-password文件中 password [success ok] pam_cracklib.so rejectusername minlen=8 difok=3 ucredit=0 lcredit=0 dcredit=0 ocredit=0 相关代码 相关代码如下: ``` c++ inline int pamUpdatePassword(const std::string& username, const std::string& password) { // NOLINTNEXTLINE(cppcoreguidelines-pro-type-const-cast) const struct pam_conv localConversation = {pamFunctionConversation,const_cast(password.c_str())}; pam_handle_t* localAuthHandle = nullptr; // this gets set by pam_start int retval = pam_start("webserver", username.c_str(), &localConversation, &localAuthHandle); if (retval != PAM_SUCCESS) { return retval; } retval = pam_chauthtok(localAuthHandle, PAM_SILENT); if (retval != PAM_SUCCESS) { pam_end(localAuthHandle, PAM_SUCCESS); return retval; } return pam_end(localAuthHandle, PAM_SUCCESS); } ``` 你期待的结果是什么?实际看到的错误信息又是什么? 密码设置成Aa12345@时,pam_chauthtok()函数返回PAM_AUTHTOK_ERR,如果密码设置成Bji230309@时,返回PAM_SUCCESS(正常的),为什么将密码设置成Aa12345@不行,大家有遇到过嘛?

阅读量:198

点赞量:0

问AI
出现这个问题的原因应该是密码的安全策略,根据楼主的问题描述(楼主的问题描述很完善,点个赞!),出现“Cannot read property 'message' of undefined”是因为密码复杂度不够强造成的,在/etc/pam.d/common-password文件中,您使用了pam_cracklib.so模块来限制用户密码的复杂度。 "https://wmprod.oss-cn-shanghai.aliyuncs.com/community/1724830747370_sB4i.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/community/1724830747370_sB4i.png) pam_cracklib.so这个模块的作用是检查密码长度、是否包含数字、大小写字母和特殊字符等要求。如果密码不符合这些要求,则会拒绝修改或者创建新密码。你可以尝试将其修改为更加复杂一些的密码,并且确保满足上述条件,看看能否解决问题。