服务器操作系统:
ubuntu16.04
使用chpasswd修改密码时提示报错
echo "root:xxxxx" |chpasswd
################报错提示如下
chpasswd: (user admin) pam_chauthtok() failed, error
passwd: Module is unknown
原因分析
缺少pam的cracklib模块
pam_cracklib模块就是用来做密码复杂度检测的
解决方案:
安装cracklib
apt-cache search pam | grep crack
libpam-cracklib – PAM module to enable cracklib support
apt-get install libpam-cracklib
批量安装问题
单独在安装这个软件包时会弹出交互式界面,如果使用ansible shell模块批量安装时就会一直无显示等待情况
针对ansible批量安装libpam-cracklib软件包问题,推介解决方案
ansible -i tmphosts tmp -m "apt" -a "name=libpam-cracklib state=present"
10.xx.xx.xx | CHANGED => {
"ansible_facts": {
"discovered_interpreter_python": "/usr/bin/python"
},
"cache_update_time": 1712092322,
"cache_updated": false,
"changed": true,
"stderr": "",
"stderr_lines": [],
"stdout": "Reading package lists...\nBuilding dependency tree...\nReading state information...\nThe following NEW packages will be installed:\n libpam-cracklib\n0 upgraded, 1 newly installed, 0 to remove and 83 not upgraded.\nNeed to get 13.0 kB of archives.\nAfter this operation, 96.3 kB of additional disk space will be used.\nGet:1 https://mirrors.myoas.com/artifactory/ubuntu xenial-updates/main amd64 libpam-cracklib amd64 1.1.8-3.2ubuntu2.3 [13.0 kB]\nFetched 13.0 kB in 0s (64.0 kB/s)\nSelecting previously unselected package libpam-cracklib:amd64.\r\n(Reading database ... \r(Reading database ... 5%\r(Reading database ... 10%\r(Reading database ... 15%\r(Reading database ... 20%\r(Reading database ... 25%\r(Reading database ... 30%\r(Reading database ... 35%\r(Reading database ... 40%\r(Reading database ... 45%\r(Reading database ... 50%\r(Reading database ... 55%\r(Reading database ... 60%\r(Reading database ... 65%\r(Reading database ... 70%\r(Reading database ... 75%\r(Reading database ... 80%\r(Reading database ... 85%\r(Reading database ... 90%\r(Reading database ... 95%\r(Reading database ... 100%\r(Reading database ... 231267 files and directories currently installed.)\r\nPreparing to unpack .../libpam-cracklib_1.1.8-3.2ubuntu2.3_amd64.deb ...\r\nUnpacking libpam-cracklib:amd64 (1.1.8-3.2ubuntu2.3) ...\r\nProcessing triggers for man-db (2.7.5-1) ...\r\nSetting up libpam-cracklib:amd64 (1.1.8-3.2ubuntu2.3) ...\r\n\r\npam-auth-update: Local modifications to /etc/pam.d/common-*, not updating.\r\npam-auth-update: Run pam-auth-update --force to override.\r\n\r\n",
"stdout_lines": [
"Reading package lists...",
"Building dependency tree...",
"Reading state information...",
"The following NEW packages will be installed:",
" libpam-cracklib",
"0 upgraded, 1 newly installed, 0 to remove and 83 not upgraded.",
"Need to get 13.0 kB of archives.",
"After this operation, 96.3 kB of additional disk space will be used.",
"Get:1 https://mirrors.myoas.com/artifactory/ubuntu xenial-updates/main amd64 libpam-cracklib amd64 1.1.8-3.2ubuntu2.3 [13.0 kB]",
"Fetched 13.0 kB in 0s (64.0 kB/s)",
"Selecting previously unselected package libpam-cracklib:amd64.",
"(Reading database ... ",
"(Reading database ... 5%",
"(Reading database ... 10%",
"(Reading database ... 15%",
"(Reading database ... 20%",
"(Reading database ... 25%",
"(Reading database ... 30%",
"(Reading database ... 35%",
"(Reading database ... 40%",
"(Reading database ... 45%",
"(Reading database ... 50%",
"(Reading database ... 55%",
"(Reading database ... 60%",
"(Reading database ... 65%",
"(Reading database ... 70%",
"(Reading database ... 75%",
"(Reading database ... 80%",
"(Reading database ... 85%",
"(Reading database ... 90%",
"(Reading database ... 95%",
"(Reading database ... 100%",
"(Reading database ... 231267 files and directories currently installed.)",
"Preparing to unpack .../libpam-cracklib_1.1.8-3.2ubuntu2.3_amd64.deb ...",
"Unpacking libpam-cracklib:amd64 (1.1.8-3.2ubuntu2.3) ...",
"Processing triggers for man-db (2.7.5-1) ...",
"Setting up libpam-cracklib:amd64 (1.1.8-3.2ubuntu2.3) ...",
"",
"pam-auth-update: Local modifications to /etc/pam.d/common-*, not updating.",
"pam-auth-update: Run pam-auth-update --force to override.",
""
]
}
如果要用shell模块,可使用:
ansible -i tmphosts tmp -m "shell" -a 'DEBIAN_FRONTEND=noninteractive apt-get install libpam-cracklib -y --allow-unauthenticated'