要使用changepassword程序实现客户端更改密码,必须设置系统密码和samba密码同步
vim /etc/samba/smb.conf
搜索 security = user 在其后添加以下内容
security = user
pam password change = no
passwd chat =**NEW*UNIX*password* %n\n *Retype*new*UNIX*password* %n\n *successfully*
passwd program = LANG=en_US/usr/bin/passwd %u
unix password sync = yes
passdb backend = smbpasswd
smb passwd file = /etc/samba/smbpasswd
注:上述修改其实将tdbsam认证方式修改该成smbpasswd,并将认证文件加密保存在/etc/samba/smbpasswd下
重启服务:
service smb restart
创建samba账户
useradd -s /sbin/nologinuser01
passwd user01
smbpasswd -a user01
注:这里创建samba账户时必须设置系统账户密码,以及smb账户密码
因为changepassword更改密码的机制是,先修改系统账户密码,然后将系统账户密码同步到 /etc/samba/smbpasswd SMB密码库文件下。
二.安装配置changepassword
1,下载解压:
tar -zxvfchangepassword-0.9.tar.gz
cd changepassword-0.9
2.编译changepassword前需要安装一个依赖包
cd smbencrypt/
tar -xzvf libdes-4.04b.tar.gz
cd des/
make
cp libdes.a ../
cd ../..
3.编译安装changepassword
./configure -enable-cgidir=/usr/local/apache/htdocs/samba-enable-language=Chinese -enable-smbpasswd=/etc/samba/smbpasswd -disable-squidpasswd -enable-logo=samba/logo.jpg
注:-enable-cgidir=... # 自定义apache根目录路径
-enable-language=Chinese # 设置页面为简体中文
-enable-smbpasswd=/etc/samba/smbpasswd # 自定义samba密码的库文件
(这里smbpasswd并非修改smb用户密码的系统命令,请注意不要混淆)
-disable-squidpasswd # 禁用squid
-enable-logo=... # 设置web根目录logo文件,此处的相对路径对应的是apache根目录
# 也就是 samba/logo.jpg对应/usr/local/apache2/htdocs/samba/logo.jpg
make && make install
4.设置apache支持cgi模块
vi /usr/local/apache/conf/httpd.conf
搜索cgi 去掉如下注释:
--------------
LoadModule cgid_modulemodules/mod_cgid.so
AddHandler cgi-script .cgi
--------------
搜索 DocumentRoot,在/usr/local/apache2/htdocs类目下找到Options选项,修改为:
--------------
Options IndexesFollowSymLinks ExecCGI
--------------
重启服务
# /usr/local/apache/bin/apachectlrestart
5.访问web后台:
http://172.23.145.41:81/changepassword.cgi
按照提示修改密码提交即可