shell-script - php執行shell指令碼的問題

來源:互聯網
上載者:User
關鍵字 php shell shell-script shell_exec
1.自己寫了一個php指令碼,用來通過WEB介面,執行一些shell指令碼

2.shell指令碼會用到sudo

3.sudo使用者已經設定了NOPASSWORD

4.手動在nobody使用者環境下,(su -s /bin/bash nobody),再執行shell指令碼是可以正常執行的,但是通過php執行,sudo那個語句會不執行

請教如何使用php執行呢?目前是使用shell_exec函數來執行的。

回複內容:

1.自己寫了一個php指令碼,用來通過WEB介面,執行一些shell指令碼

2.shell指令碼會用到sudo

3.sudo使用者已經設定了NOPASSWORD

4.手動在nobody使用者環境下,(su -s /bin/bash nobody),再執行shell指令碼是可以正常執行的,但是通過php執行,sudo那個語句會不執行

請教如何使用php執行呢?目前是使用shell_exec函數來執行的。

知道原因了,是,sudo: sorry, you must have a tty to run sudo

修改下系統配置就可以了。

這樣子相對比較危險啊。。。。首先不論怎麼實現。。。
sudo你需要sudo開啟PHP進程那麼php執行的都是sudo了啊

把www 使用者加到root組

2.shell指令碼會用到sudo

這句話的意思是,shell指令碼的執行需要sudo的許可權才行?

看起來這是一個很有危險性的操作啊,謹慎謹慎。

當然,不執行一般都是許可權問題導致的。在webserver環境執行PHP指令碼,以nginx為例,一般使用 www使用者,你在cli下可以,如果基於你的要求,首先www應該屬於root group
其次,便於調試,你可以嘗試在cli

sudo -Hu www php your.php

還有就是,shell_exec 函數會返回一個值,就是shell的輸出, err_log() 到檔案去看看唄。

php只能執行部分命令,即使用root也一樣。

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.