最近一直在潛心研究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相應路徑即可