在PHP中运行Linux命令并启动SSH服务的例子
发布:smiling 来源: PHP粉丝网 添加日期:2021-02-11 10:48:36 浏览: 评论:0
这篇文章主要介绍了在PHP中运行Linux命令并启动SSH服务的例子,因为VPS的SSH服务挂了,导致无法进入服务器,所以想了这么一个办法,需要的朋友可以参考下。
升级 VPS 后,由于 Ubuntu 的 upstart 与 OpenVZ 的兼容问题,导致 sshd 服务不自动启动了,在尝试了 vePortal 的 console 与 file manager 及提交技术支持后都不能解决问题之后。
只能靠自己了,大概的思路是在 PHP 中进行 su 命令以执行 sshd 服务,因为 WordPress 还活着,并且可以在后台直接编辑主题相关的 PHP 脚本。只要把准备好的代码片断插入到 header.php 中,并在浏览器中访问一下主页即可。
相关的代码逻辑
1. 使用 PHP 的 proc_open 打开一个进程,重定向 stdin, stdout, stderr, 这里会执行一个 python 程序。
2. 在这个 python 程序中打开一个 pty,并运行一个 sh。
3. 利用步骤 1 中重定向的 stdin pipe 向 python 程序发送 su 命令, python 会将来自 stdin 的命令数据写到入 ptmx,而这时 sh 的 stdin, stdout 及 stderr 是重定向到与 python 打开的 ptmx 配对的 pts 上的。也就是说 su 命令最终会转给 sh 进程处理。
4. sh 进程自然的执行了 su 命令,这时 su 进程的 stdin, stdout, stderr 也会被重定向到那个 pts 上。
5. 在 sleep 一段时间后(主要是等 su 真的跑起来了),再写入密码,数据流过程与步骤 3、4 一致。
相关的代码片断:
- <?php
- $descriptorspec = array(
- 0 => array("pipe", "r"), // stdin
- 1 => array("pipe", "w"), // stdout
- 2 => array("pipe", "w") // stderr
- );
- $process = proc_open("python -c 'import pty; pty.spawn(\"/bin/sh\")'", $descriptorspec, $pipes);
- if (is_resource($process)) {
- fwrite($pipes[0], "su -c 'service ssh start' root\n");
- fflush($pipes[0]);
- sleep(3);
- fwrite($pipes[0], "PASSWORD\n");
- fflush($pipes[0]);
- fclose($pipes[0]);
- fclose($pipes[1]);
- fclose($pipes[2]);
- proc_close($process);
- }
- ?>
Tags: Linux 启动SSH服务
- 上一篇:PHP小教程之实现双向链表
- 下一篇:探寻PHP脚本不报错的原因
相关文章
- ·linux中phpMyAdmin错误提示Wrong permissions on configuration file, should no(2013-12-04)
- ·PHP执行Linux命令实现文件压缩(2014-07-29)
- ·PHP调用linux命令详细说明(2014-08-18)
- ·LINUX中PHP实现网页截屏实例程序(2014-08-27)
- ·linux下yum安装PHP APC与使用实例(2014-08-27)
- ·linux中解析.htpasswd文件的PHP类(2014-08-28)
- ·Linux下Memcache服务器端的安装(2014-09-08)
- ·LINUX 系统参数探测包括cpu,时间,内存等(2014-09-09)
- ·php中实现mysql数据库备份与linux自动定时备份代码(2014-09-11)
- ·linux环境下php读取csv文件中文读取不到的问题解决办法(2015-05-09)
- ·PHP调用linux外部命令的例子(2018-10-13)
- ·Linux环境下php实现给网站截图的方法(2019-08-12)
- ·linux使用crontab实现PHP执行计划定时任务(2020-12-14)
- ·php实现Linux服务器木马排查及加固功能(2021-05-05)
- ·php在linux下检测mysql同步状态的方法(2021-05-08)
- ·PHP+swoole+linux实现系统监控和性能优化操作示例(2021-11-17)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)