使用changepassword.cgi为samba客户端提供自助密码修改

2017年2月15日 0 条评论 914 次阅读 0 人点赞

一、环境

关闭selinux

# setenforce 0 //临时关闭
# vi /etc/sysconfig/selinux //永久关闭,需重启生效
---------------
SELINUX=disabled
---------------

iptables 

看着办,关闭:service iptables stop

组件包

# yum install gcc -y

安装Apache或Nginx

可以使用一键包,或者yum 安装

二、配置Samba

1、安装Samba

# yum install samba -y

2、配置Samba

changepassword实现修改samba密码的原理是修改系统用户密码,然后同步到smbpasswd,所以在smb中需要特别配置

# vi /etc/samba/smb.conf
//搜索 security = user 在其后添加以下内容,并注释 passdb backend = tdbsam
----------------
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
# passdb backend = tdbsam
--------------------------

注:上述修改其实将tdbsam认证方式修改该成smbpasswd,并将认证文件加密保存在/etc/samba/smbpasswd下

查找配置文件路径命令

# find / -name smbpasswd

更改保存后重启samba

# service smb restart

创建账号

# useradd -M -s /sbin/nologin test01
# passwd test01
# smbpasswd -a test01

注:这里创建samba账户时必须设置系统账户密码

三、安装配置changepassword

1、下载解压缩

# wget http://prdownloads.sourceforge.net/changepassword/changepassword-0.9.tar.gz
# tar -zxvf changepassword-0.9.tar.gz
# cd changepassword-0.9

2、编译前需要安装一个依赖包

# cd  smbencrypt/
# tar -xzvf libdes-4.04b.tar.gz
# cd des/
# make
# cp libdes.a ../
# cd ../..

3、编译安装

# ./configure -enable-cgidir=/var/www/html -enable-language=Chinese -enable-smbpasswd=/etc/samba/smbpasswd  -disable-squidpasswd  -enable-logo=logo.jpg

注:-enable-cgidir=...                     # 自定义html根目录路径
   -enable-language=Chinese                # 设置页面为简体中文
   -enable-smbpasswd=/etc/samba/smbpasswd  # 自定义samba密码的库文件
   (这里smbpasswd并非修改smb用户密码的系统命令,请注意不要混淆)
   -disable-squidpasswd                    # 禁用squid
   -enable-logo=...  # 设置web根目录logo文件,此处的相对路径对应的是apache根目录
                     # 也就是 samba/logo.jpg对应/var/www/html/logo.jpg

# make && make install

4、设置apache支持cgi模块

# vi /usr/local/apache2/conf/httpd.conf
//搜索cgi 去掉如下注释:
--------------
LoadModule cgid_module modules/mod_cgid.so
AddHandler cgi-script .cgi
--------------
//搜索 DocumentRoot,在/usr/local/apache2/htdocs类目下找到Options选项,修改为:
--------------
Options Indexes FollowSymLinks ExecCGI
--------------

重启服务

service httpd restart

5、访问即可

http://*.*.*.*/changepassword.cgi

额外注意事项:

changepassword.cgi

changepassword.cgi 文件会在编译后自动由其命令复制到此处并且赋予 4755的权限,需要保持此文件的所属用户及用户组

如下是make install 的显示

cp changepassword.cgi /var/www/html/changepassword.cgi
chmod 4755 /var/www/html/changepassword.cgi

Sevenfal

这个人太懒什么东西都没留下

文章评论(0)