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相应路径即可

时间: 2024-12-23 15:18:14

samba用户自行修改密码的相关文章

Ubuntu Server忘记密码后,单用户模式修改密码进去不了桌面的无奈

俗话说的好,好记性不如烂笔头.有时候脑子一热,就想不起来之前设置过的密码是什么了.我可怜地忘了我的Ubuntu Server的密码,回忆了n种组合都不行,于是只能进行单用户模式的修改密码了. 以下的操作基于我忘了用户名pcat的密码. 1.进入单用户模式修改密码 开机到grub界面的时候,按下上下键移动到Advanced options for Ubuntu,回车进去选择Ubuntu, with Linux 4.2.0-27-generic (recovery mode),按下e(而不是按下回车

MYSQL 添加用户和修改密码,包括root

1.选择数据表 语句如下:use mysql; 2.在mysql的user表中增加连接用户帐号: 这里不要直接使用INSERT语句添加user记录,使用INSERT可能出现: ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value错误.不过早期的MYSQL版本笔者倒没出现这个错误,因为天缘一直都是直接修改user表或直接使用INSERT语句完成,后来升级 MYSQL到5.1的时候,发现可能会出现这个错误. 建议使用G

域服务器 FTP 权限设置及用户自行修改域账户密码

由于部门需要搭建一台SVN服务器,服务器使用IBM X3650,系统winsdows2008 企业版.安装系统过程中想要使用加载软盘中RAID驱动的方式来安装,无奈IBM的售后技术支持十分让人蛋疼,借过保机器各种推脱,此处省略罢..后来找到随机引导光盘,引导模式安装也是十分简单.系统顺利安装. SVN的安装过程也是波澜不惊,比较顺利. 考虑到一整台服务器就单单提供SVN的代码服务有点浪费了,就准备兼做文件服务器和FTP,因为公司没有域控,对于文件共享和FTP服务,人员账户认证登录就需要用到AD了

求助:hmailserver+roundcube启用密码插件后,用户无法修改密码问题

环境 windows 8 apache:httpd-2.4.25-x64-vc14-r1 mysql:5.6 php:php-7.1.5-Win32-VC14-x64 hmailserver:hMailServer-5.6.7-B2407 roundcube:roundcubemail-1.2.5-complete 密码插件配置config.inc.php: <?php // Password Plugin options // ----------------------- // A driv

REDHAT7单用户模式修改密码

Redhat7采用的是grub2,和Redhat6.x进入单用户的方法不同. 一.init方法 1.centos7的grub2界面会有两个入口,正常系统入口和救援模式: 2.修改grub2引导 在正常系统入口上按下"e",会进入edit模式,搜寻ro那一行,以linux16开头的: 把ro更改成rw:(把只读更改成可写) 把rhgb quiet删除:(quiet模式没有代码行唰唰的走,可以删除) 增加init=/bin/sh:(或init=/bin/bash,指定shell环境) 按下

oracle 解锁用户和修改密码

解决:(1)conn sys/sys as sysdba;//以DBA的身份登录(2)alter user scott account unlock;// 然后解锁(3)conn scott/tiger //弹出一个修改密码的对话框,修改一下密码就可以了 具体操作步骤如下:C:> sqlplus请输入用户名:sys输入口令:sys as sysdba //注意:在口令这里输入的密码后面必须要跟上 as sysdba 才可以.SQL> alter user scott account unloc

Linux 下新建用户、修改密码等

查看用户列表 cat /etc/passwd 可以查看所有用户的列表w 可以查看当前活跃的用户列表cat /etc/group 查看用户组 新建用户 1.添加新的用户账号使用useradd命令,其语法如下: 代码:useradd 选项 用户名其中各选项含义如下: 代码:-c comment 指定一段注释性描述.-d 目录 指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录.-g 用户组 指定用户所属的用户组.-G 用户组,用户组 指定用户所属的附加组.-s Shell文件 指定

Liferay 6.2 改造系列之七:关闭使用条款确认、密码提醒、新用户强制修改密码等功能

关闭使用条款确认: 在/portal-master/portal-impl/src/portal.properties配置文件中,有如下配置: # # Set this to true if all users are required to agree to the terms of use. # terms.of.use.required=true 修改为: # # Set this to true if all users are required to agree to the term

MySQL添加用户、用户授权、删除用户、修改密码

1.新建用户 登录MYSQL: @>mysql -u root -p @>密码 创建用户: mysql> insert into mysql.user(Host,User,Password) values("localhost","test",password("1234")); 这样就创建了一个名为:test 密码为:1234 的用户. 注意:此处的"localhost",是指该用户只能在本地登录,不能在另