热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

近一直在潜心研究linuxshell,所以好久没有更新了。今天也是在QQ有人和我聊到samba密码ldap集中验证时,想到一个问题,内网使用samba服务器来存储用户数据,所有的用户不能登陆LINUX后台,如何让客户自行修改密码?想要解决客户端实现修改samba密码,其实不需要去搭建ldap(维护成本较高),也不需要利用行政手法统计

近一直在潜心研究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系统账户及其家目录来划分公司内网用户每个人的存储空间。

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


推荐阅读
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了在Hibernate配置lazy=false时无法加载数据的问题,通过采用OpenSessionInView模式和修改数据库服务器版本解决了该问题。详细描述了问题的出现和解决过程,包括运行环境和数据库的配置信息。 ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 本文介绍了Linux系统中正则表达式的基础知识,包括正则表达式的简介、字符分类、普通字符和元字符的区别,以及在学习过程中需要注意的事项。同时提醒读者要注意正则表达式与通配符的区别,并给出了使用正则表达式时的一些建议。本文适合初学者了解Linux系统中的正则表达式,并提供了学习的参考资料。 ... [详细]
  • Ubuntu 9.04中安装谷歌Chromium浏览器及使用体验[图文]
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
author-avatar
滴滴答2502906673
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有