通过PHP修改Linux或Unix口令的方法分享


Posted in PHP onJanuary 30, 2012

需要的工具和安装:

你必须安装下面的工具和软件:

?修改口令的Shell脚本;

? Sudo访问权;

? Apache or Lighttpd web服务器;

? PHP服务端程序。

步骤1:安装可以修改用户口令的shell脚本

该脚本可以实际用于修改Linux用户的口令(已在Linux和FreeBSD测试)。

例子: shell脚本代码

#!/bin/sh # \ exec expect -f “$0″ ${1+”$@”} set password [lindex $argv 1] spawn passwd [lindex $argv 0] sleep 1 expect “assword:” send “$password\r” expect “assword:” send “$password\r” expect eof运行shell脚本(下载链接):

$ chpasswd username password下载该脚本,然后拷贝到你的web根目录或者web服务器的其它位置(用户可读):

$ cp chpasswd /var/www/或者,如果你使用Lighttpd web服务器:

$ cp chpasswd /home/lighttpd步骤2:通过sudo以root身份执行命令

Apache或Lighttpd web服务器进入后台运行后会马上使用非root权限。这样可以很好的防止口令修改,就像passwd命令需要root权限才能修改其它用户帐号的口令。

通常, Apache 2使用www-data用户, Lighttpd使用lighttpd用户(皆为普通用户,非root用户)。使用root用户登陆,然后执行下面的命令:

# visudo现在你的web服务器允许执行口令修改脚本(chpasswd)。如果你使用Apache web服务器,执行下面的命令:

www-data ALL=NOPASSWD: /var/www/chpasswd或者,如果你使用Lighttpd web服务器,执行下面的命令:

httpd ALL=NOPASSWD: /home/lighttpd/chpasswd保存和退出文件。

步骤3.创建一个基于PHP的接口

现在你需要写一个php脚本。这里有一个php脚本实例。你可以根据你的需要来修改。至少你需要正确设置好的shell脚本位置。打开php脚本和找到shellscript一行:

$shellscript = “sudo /home/lighttpd/chpasswd”;修改shellscript指向到正确的位置。PHP的源代码从这里下载:

步骤4:运行脚本

在你的web浏览器地址栏输入网地址,你将会看到用户名和口令提示:

如果口令修改成功,你会得到的确认提示:

由于一些原因,如果口令修改失败,你可以参考下面提示获得更多详细的错误信息:

步骤5:安全

◆永远不要通过http协议直接运行上面的脚本.而是使用https协议。

◆把脚本放入到受口令保护的目录。

◆永远不要信任用户的输入。上面的php脚本只是一个例子。在现实的生产环境中,你需要考虑采用更强大的用户输入确认。讨论PHP编程的安全超出了本文的范围。你可以参考一本好的PHP书籍或者使用你喜欢的搜索引擎搜索相关的网站。

PHP 相关文章推荐
如何正确理解PHP的错误信息
Oct 09 PHP
简单的PHP多图上传小程序代码
Jul 17 PHP
php实现批量压缩图片文件大小的脚本
Jul 04 PHP
PHP图片库imagemagick安装方法
Sep 23 PHP
ThinkPHP有变量的where条件分页实例
Nov 03 PHP
Linux中为php配置伪静态
Dec 17 PHP
PHP调用Linux命令权限不足问题解决方法
Feb 07 PHP
php跨服务器访问方法小结
May 12 PHP
详解PHP匿名函数与注意事项
Mar 29 PHP
PHP实现的链式队列结构示例
Sep 15 PHP
基于PHP实现的多元线性回归模拟曲线算法
Jan 30 PHP
PHP实现生成数据字典功能示例
May 24 PHP
php代码收集表单内容并写入文件的代码
Jan 29 #PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
Jan 27 #PHP
php木马webshell扫描器代码
Jan 25 #PHP
php addslashes及其他清除空格的方法是不安全的
Jan 25 #PHP
PHP中创建空文件的代码[file_put_contents vs touch]
Jan 20 #PHP
php中将数组存到文件里的实现代码
Jan 19 #PHP
PHP取进制余数函数代码
Jan 19 #PHP
You might like
PHP 文件扩展名 获取函数
2009/06/03 PHP
PHP 进程锁定问题分析研究
2009/11/24 PHP
PHP性能优化准备篇图解PEAR安装
2011/12/05 PHP
使用tp框架和SQL语句查询数据表中的某字段包含某值
2019/10/18 PHP
tp5框架的增删改查操作示例
2019/10/31 PHP
13个绚丽的Jquery 界面设计网站推荐
2010/09/28 Javascript
js综合应用实例简单的表格统计
2013/09/03 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
深入理解JavaScript系列(40):设计模式之组合模式详解
2015/03/04 Javascript
快速学习jQuery插件 jquery.validate.js表单验证插件使用方法
2015/12/01 Javascript
全面解析Angular中$Apply()及$Digest()的区别
2016/08/04 Javascript
windows下vue.js开发环境搭建教程
2017/03/20 Javascript
jQuery实现鼠标经过显示动画边框特效
2017/03/24 jQuery
jQuery中的deferred使用方法
2017/03/27 jQuery
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
2020/04/22 Javascript
vscode中的vue项目报错Property ‘xxx‘ does not exist on type ‘CombinedVueInstance<{ readyOnly...Vetur(2339)
2020/09/11 Javascript
[06:14]《辉夜杯》外卡赛附加赛 4支战队巡礼
2015/10/23 DOTA
浅谈python for循环的巧妙运用(迭代、列表生成式)
2017/09/26 Python
Python 通过调用接口获取公交信息的实例
2018/12/17 Python
python SQLAlchemy的Mapping与Declarative详解
2019/07/04 Python
Flask框架重定向,错误显示,Responses响应及Sessions会话操作示例
2019/08/01 Python
Django项目中实现使用qq第三方登录功能
2019/08/13 Python
python 中值滤波,椒盐去噪,图片增强实例
2019/12/18 Python
Python unittest装饰器实现原理及代码
2020/09/08 Python
sublime3之内网安装python插件Anaconda的流程
2020/11/10 Python
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
HTML5 Canvas 绘图——使用 Canvas 绘制图形图文教程 使用html5 canvas 绘制精美的图
2015/08/31 HTML / CSS
荷兰本土平价百货:HEMA
2017/10/23 全球购物
西班牙宠物用品和食品网上商店:Tiendanimal
2019/06/06 全球购物
策划创业计划书
2014/02/06 职场文书
工程质量承诺书
2014/03/27 职场文书
车辆工程专业求职信
2014/04/28 职场文书
伏羲庙导游词
2015/02/09 职场文书
研究生个人学年总结
2015/02/14 职场文书
安全教育主题班会总结
2015/08/14 职场文书