歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 關於Linux

如何在Centos 6.3下利用changepassword修改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

傳送門:http://showerlee.blog.51cto.com/2047005/1174141

二.配置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相應路徑即可

如圖:

最後可以在windows客戶端訪問samba共享文件夾,查看密碼是否修改成功。

注:本博未做samba的相關配置,是因為默認創建一個系統賬戶samba會直接將系統家目錄作為共享目錄推送到內網,而剛好就可以利用每個LINUX系統賬戶及其家目錄來劃分公司內網用戶每個人的存儲空間。

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

作者:51cto博客 一路向北

Copyright © Linux教程網 All Rights Reserved