欢迎访问www.showerlee.com, 您的支持就是我前进的动力.

Centos6.3下利用changepassword修改samba账户密码

showerlee 2013-08-23 13:20 LINUX 阅读 (3,345) 1条评论

最近一直在潜心研究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

传送门:http://www.showerlee.com/archives/6

二.配置samba:

1.安装samba:

# yum install samba -y

2.配置samba:

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

# 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下

重启服务:

# service smb restart

创建samba账户(关闭用户shell接口)

# useradd -s /sbin/nologin user01

# passwd user01

# smbpasswd -a user01

注:这里创建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=/usr/local/apache2/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/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

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

重启服务

# /usr/local/apache2/bin/apachectl restart

5.访问web后台:

http://192.168.7.74/samba/changepassword.cgi

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

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

如图:

12

最后可以在windows客户端访问samba共享文件夹,查看密码是否修改成功。

注:本博未做samba的相关配置,是因为默认创建一个系统账户samba会直接将系统家目录作为共享目录推送到内网,而刚好就可以利用每个LINUX系统账户及其家目录来划分公司内网用户每个人的存储空间。

---------------大功告成-----------------

正文部分到此结束
版权声明:除非注明,本文由(showerlee)原创,转载请保留文章出处!
本文链接:http://www.showerlee.com/archives/253

继续浏览:SAMBA

目前有1条大神的评论

loading
  1. 沙发
    防过敏润滑剂2013年9月13日下午4:55 回复

    楼主,请原谅我的自私!我知道无论用多么华丽的辞藻来形容楼主您帖子的精彩程度都是不够的,都是虚伪的,所以我只想说一句:您的帖子太好看了!我愿意一辈子的看下去!
    防过敏润滑剂 http://www.338c.com/prolist.62.html

发表评论

icon_wink.gif icon_neutral.gif icon_mad.gif icon_twisted.gif icon_smile.gif icon_eek.gif icon_sad.gif icon_rolleyes.gif icon_razz.gif icon_redface.gif icon_surprised.gif icon_mrgreen.gif icon_lol.gif icon_idea.gif icon_biggrin.gif icon_evil.gif icon_cry.gif icon_cool.gif icon_arrow.gif icon_confused.gif icon_question.gif icon_exclaim.gif