samba用户自行修改密码

最近一直在潜心研究linux shell,所以好久没有更新了。今天也是在QQ有人和我聊到samba密码ldap集中验证时,想到一个问题,内网使用samba服务器来存储用户数据,所有的用户不能登陆LINUX后台,如何让客户自行修改密码?

想要解决客户端实现修改samba密码,其实不需要去搭建ldap(维护成本较高),也不需要利用行政手法统计客户端密码(毕竟同事也不好意思告诉你他平时习惯用的密码),网上google了下,利用changepassword这个工具即可利用其WEB界面让普通用户登录WEB修改自己的密码,大大提高了工作效率。

SAMBA: CentOS默认yum源

CHANGEPASSWORD: changepassword-0.9

APACHE: httpd-2.4.4

一.环境搭建:

1.配置前先关闭iptables和SELINUX,避免配置过程中报错。

# service iptables stop

# setenforce 0

# vi /etc/sysconfig/selinux

---------------

SELINUX=disabled

---------------

2.安装开发包

# yum install gcc -y

3.安装apache yum install httpd -y

传送门:http://www.linuxidc.com/Linux/2013-05/83788.htm

二.配置samba:

1.安装samba:

# yum install samba -y

2.配置samba:

要使用changepassword程序实现,客户端更改密码必须设置系统密码和samba密码同步

# vi /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

# passdb backend = tdbsam

--------------------------

# service smb restart

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

 

创建smb账户

# useradd -s /sbin/nologin test04

# passwd test04

# smbpasswd -a test04

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

因为changepassword更改密码的机制是,先修改系统账户密码,然后将系统账户密码同步到 /etc/samba/smbpasswd SMB密码库文件下。

二.安装配置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.编译changepassword前需要安装一个依赖包

# cd smbencrypt/

# tar -xzvf libdes-4.04b.tar.gz

# cd des/

# make

# cp libdes.a ../

# cd ../..

 

3.编译安装changepassword

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

 

注:-enable-smbpasswd=/etc/samba/smbpasswd # 修改保存samba密码的库文件

-disable-squidpasswd # 禁用squid

-enable-cgidir # 自定义apache根目录路径

-disable-squidpasswd # 自定义smbpassword的密码文件路径

-enable-logo # 设置web根目录logo文件,此处的相对路径对应的是apache根目录

# 也就是 samba/logo.jpg对应/var/www/cgi-bin/logo.jpg

 

# make && make install

 

4.设置apache支持cgi模块

# vi /etc/httpd/conf/httpd.conf

搜索cgi 去掉如下注释:

--------------

LoadModule cgid_module modules/mod_cgid.so

AddHandler cgi-script .cgi

-------------- 将AddDefaultCharset的值改为 GB2312,以防中文乱码

重启服务

# service httpd restart

 

5.访问web后台:

http://192.168.1.28/cgi-bin/changepassword.cgi

按照提示修改密码提交即可

注;这里的LOGO是博主自行处理添加的,有需要的话可以将自己公司的LOGO放到changepasswd编译logo的apache web相应路径即可

转载于:https://www.cnblogs.com/cphome/p/5095662.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值