欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

在PHP中運(yùn)行Linux命令并啟動(dòng)SSH服務(wù)的例子

 更新時(shí)間:2014年06月12日 09:13:23   投稿:junjie  
這篇文章主要介紹了在PHP中運(yùn)行Linux命令并啟動(dòng)SSH服務(wù)的例子,因?yàn)閂PS的SSH服務(wù)掛了,導(dǎo)致無法進(jìn)入服務(wù)器,所以想了這么一個(gè)辦法,需要的朋友可以參考下

升級(jí) VPS 后,由于 Ubuntu 的 upstart 與 OpenVZ 的兼容問題,導(dǎo)致 sshd 服務(wù)不自動(dòng)啟動(dòng)了,在嘗試了 vePortal 的 console 與 file manager 及提交技術(shù)支持后都不能解決問題之后。

只能靠自己了,大概的思路是在 PHP 中進(jìn)行 su 命令以執(zhí)行 sshd 服務(wù),因?yàn)?WordPress 還活著,并且可以在后臺(tái)直接編輯主題相關(guān)的 PHP 腳本。只要把準(zhǔn)備好的代碼片斷插入到 header.php 中,并在瀏覽器中訪問一下主頁即可。

相關(guān)的代碼邏輯
1. 使用 PHP 的 proc_open 打開一個(gè)進(jìn)程,重定向 stdin, stdout, stderr, 這里會(huì)執(zhí)行一個(gè) python 程序。
2. 在這個(gè) python 程序中打開一個(gè) pty,并運(yùn)行一個(gè) sh。
3. 利用步驟 1 中重定向的 stdin pipe 向 python 程序發(fā)送 su 命令, python 會(huì)將來自 stdin 的命令數(shù)據(jù)寫到入 ptmx,而這時(shí) sh 的 stdin, stdout 及 stderr 是重定向到與 python 打開的 ptmx 配對(duì)的 pts 上的。也就是說 su 命令最終會(huì)轉(zhuǎn)給 sh 進(jìn)程處理。
4. sh 進(jìn)程自然的執(zhí)行了 su 命令,這時(shí) su 進(jìn)程的 stdin, stdout, stderr 也會(huì)被重定向到那個(gè) pts 上。
5. 在 sleep 一段時(shí)間后(主要是等 su 真的跑起來了),再寫入密碼,數(shù)據(jù)流過程與步驟 3、4 一致。

相關(guān)的代碼片斷:

復(fù)制代碼 代碼如下:

<?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);
  }
?>

相關(guān)文章

  • 為你的 Laravel 驗(yàn)證器加上多驗(yàn)證場(chǎng)景的實(shí)現(xiàn)

    為你的 Laravel 驗(yàn)證器加上多驗(yàn)證場(chǎng)景的實(shí)現(xiàn)

    這篇文章主要介紹了為你的 Laravel 驗(yàn)證器加上多驗(yàn)證場(chǎng)景的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 使用Rancher在K8S上部署高性能PHP應(yīng)用程序的教程

    使用Rancher在K8S上部署高性能PHP應(yīng)用程序的教程

    這篇文章主要介紹了使用Rancher在K8S上部署高性能PHP應(yīng)用程序,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-07-07
  • laravel 5 實(shí)現(xiàn)模板主題功能

    laravel 5 實(shí)現(xiàn)模板主題功能

    很多cms里都有模板主題功能,我們可以通過一個(gè)配置切換主題,這個(gè)功能在laravel下如何實(shí)現(xiàn)呢?今天我們就來探討下這個(gè)問題。
    2015-03-03
  • laravel使用redis隊(duì)列實(shí)例講解

    laravel使用redis隊(duì)列實(shí)例講解

    這篇文章主要介紹了laravel使用redis隊(duì)列實(shí)例講解,使用laravel框架之后配置redis還是很簡(jiǎn)單的,有感興趣的同學(xué)可以學(xué)習(xí)下
    2021-03-03
  • PHP實(shí)現(xiàn)chrome表單請(qǐng)求數(shù)據(jù)轉(zhuǎn)換為接口使用的json數(shù)據(jù)

    PHP實(shí)現(xiàn)chrome表單請(qǐng)求數(shù)據(jù)轉(zhuǎn)換為接口使用的json數(shù)據(jù)

    這篇文章主要介紹了PHP實(shí)現(xiàn)chrome表單請(qǐng)求數(shù)據(jù)轉(zhuǎn)換為接口使用的json數(shù)據(jù),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • laravel5.6中的外鍵約束示例

    laravel5.6中的外鍵約束示例

    今天小編就為大家分享一篇laravel5.6中的外鍵約束示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • Laravel實(shí)現(xiàn)構(gòu)造函數(shù)自動(dòng)依賴注入的方法

    Laravel實(shí)現(xiàn)構(gòu)造函數(shù)自動(dòng)依賴注入的方法

    這篇文章主要介紹了Laravel實(shí)現(xiàn)構(gòu)造函數(shù)自動(dòng)依賴注入的方法,涉及Laravel構(gòu)造函數(shù)自動(dòng)初始化的相關(guān)技巧,需要的朋友可以參考下
    2016-03-03
  • PHP查詢網(wǎng)站的PR值

    PHP查詢網(wǎng)站的PR值

    PR值是google衡量網(wǎng)站的重要標(biāo)準(zhǔn)之一,今天就給大家一個(gè)用PHP查詢網(wǎng)站的PR值的方法。
    2013-10-10
  • 基于php緩存的詳解

    基于php緩存的詳解

    本篇文章是對(duì)php中的緩存進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • Thinkphp5.0 框架視圖view的比較標(biāo)簽用法分析

    Thinkphp5.0 框架視圖view的比較標(biāo)簽用法分析

    這篇文章主要介紹了Thinkphp5.0 框架視圖view的比較標(biāo)簽用法,結(jié)合實(shí)例形式分析了thinkPHP5框架eq、equal、neq、notequal、egt及switch、range、between等標(biāo)簽相關(guān)用法,需要的朋友可以參考下
    2019-10-10

最新評(píng)論