通过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 相关文章推荐
利用js调用后台php进行数据处理原码
Oct 09 PHP
删除及到期域名的查看(抢域名必备哦)
May 14 PHP
php array_walk() 数组函数
Jul 12 PHP
php.ini中date.timezone设置分析
Jul 29 PHP
php判断ip黑名单程序代码实例
Feb 24 PHP
php 使用GD库为页面增加水印示例代码
Mar 24 PHP
php中的动态调用实例分析
Jan 07 PHP
详解WordPress中给链接添加查询字符串的方法
Dec 18 PHP
php简单统计在线人数的方法
May 10 PHP
yii通过小物件生成view的方法
Oct 08 PHP
Symfony2创建基于域名的路由相关示例
Nov 14 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 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修改数组键名的方法示例
2017/04/15 PHP
Javascript中的常见排序算法
2007/03/27 Javascript
非常强大的 jQuery.AsyncBox 弹出对话框插件
2011/08/29 Javascript
JavaScript 操作table,可以新增行和列并且隔一行换背景色代码分享
2013/07/05 Javascript
jquery实现搜索框常见效果的方法
2015/01/22 Javascript
JS实现的论坛Ajax打分效果完整实例
2015/10/31 Javascript
jquery调整表格行tr上下顺序实例讲解
2016/01/09 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
原生js实现键盘控制div移动且解决停顿问题
2016/12/05 Javascript
Node.js设置CORS跨域请求中多域名白名单的方法
2017/03/28 Javascript
微信小程序 蓝牙的实现实例代码
2017/06/27 Javascript
关于vue.js组件数据流的问题
2017/07/26 Javascript
利用Vue实现移动端图片轮播组件的方法实例
2017/08/23 Javascript
写给vue新手们的vue渲染页面教程
2017/09/01 Javascript
vue做移动端适配最佳解决方案(亲测有效)
2018/09/04 Javascript
Vue.js+cube-ui(Scroll组件)实现类似头条效果的横向滚动导航条
2019/06/24 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
Vue使用v-viewer实现图片预览
2020/10/21 Javascript
Python进行数据科学工作的简单入门教程
2015/04/01 Python
python3音乐播放器简单实现代码
2020/04/20 Python
python使用super()出现错误解决办法
2017/08/14 Python
Python实现k-means算法
2018/02/23 Python
django传值给模板, 再用JS接收并进行操作的实例
2018/05/28 Python
实例详解Python模块decimal
2019/06/26 Python
linux中如何使用python3获取ip地址
2019/07/15 Python
Windows平台Python编程必会模块之pywin32介绍
2019/10/01 Python
优纳科技软件测试面试题
2012/05/15 面试题
2013的个人自我评价
2013/12/26 职场文书
优秀幼教自荐信
2014/02/03 职场文书
工作过失检讨书
2014/02/23 职场文书
2014公安机关纪律作风整顿思想汇报
2014/09/13 职场文书
团队会宣传标语
2014/10/09 职场文书
优秀班主任主要事迹材料
2014/12/16 职场文书
《观潮》教学反思
2016/02/17 职场文书
十二月早安励志心语大全
2019/12/03 职场文书
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis