php利用exec執行shell指令碼問題

來源:互聯網
上載者:User
先說下我想做的事情:
將Linux下的操作,web化,使使用者可以通過web端進行基本的操作,但是現在在寫建立目錄的代碼:
$mkdir_command = "/home/myname/myshell/mkdir.sh /$directory/ $name";
exec($mkdir_command,$output,$return);
.....
我也知道在web端執行shell指令碼,其實在Linux下是以Apache的許可權來啟動並執行,
但是在Linux下我將mkdir.sh在運行時的許可權修改為root的了,也就是說任何調用該檔案的使用者在執行的時候都是以root的許可權來執行的:chmod 777 mkdir.sh ; chmod u+s mkdir.sh
但是在網頁端還是執行不成功。
單獨在Linux下是可以執行成功的,
希望大家發表一下意見或者看法,謝謝!!


回複討論(解決方案)

Apache對該目錄要有寫的許可權

Apache對該目錄要有寫的許可權


謝謝您的回複,可以說一下具體應該怎麼設定嗎?

mkdir.sh許可權修改為root的
那 apache 就更無權訪問了

本帖最後由 xuzuning 於 2012-11-28 19:32:59 編輯mkdir.sh許可權修改為root的
那 apache 就更無權訪問了


額。。。mkdir.sh本身就是root使用者建立的,只是當執行這個檔案的時候,為普通使用者賦予root的許可權。
版主回複深感榮幸,嘿嘿,說正事。。。 您有什麼好方法嗎?

1.web將結果寫到 一個檔案裡 例如需要建立什麼 到哪建立

2.linux root 定時 調用 shell 查看檔案是否存在需要更動的內容
如果是 這個時候就是用root 來操作了


建一個定時器就是了.

樓主,請問你的php指令碼有沒有執行許可權? 不是mkdir.sh  ,是那個跑shell 的php .設了執行許可權沒?

1.web將結果寫到 一個檔案裡 例如需要建立什麼 到哪建立

2.linux root 定時 調用 shell 查看檔案是否存在需要更動的內容
如果是 這個時候就是用root 來操作了


建一個定時器就是了.


您的意思是利用Linux的crond服務來實現?每隔一段時間就執行php寫入的那個檔案,然後再刪除?這個辦法好嗎?

樓主,請問你的php指令碼有沒有執行許可權? 不是mkdir.sh  ,是那個跑shell 的php .設了執行許可權沒?


php的運行許可權肯定是有的。

你得查看你有沒有執行許可權
system/exec先執行一條其他簡單的命令比如:ls 、ifconfig看看能否執行成功
再去檢查.sh檔案的許可權問題

linux下輸入visudo
然後我們在最後追加
apache ALL=NOPASSWD:/bin/sh
然後
php執行exec("/usr/bin/sudo /bin/sh /xxx/xxx.sh")
/xxx/xxx.sh 是你要執行的指令碼

看看這篇文章吧,可以解決你的問題
http://blog.csdn.net/vindo/article/details/3610587

加 sudo

linux下輸入visudo
然後我們在最後追加
apache ALL=NOPASSWD:/bin/sh
然後
php執行exec("/usr/bin/sudo /bin/sh /xxx/xxx.sh")
/xxx/xxx.sh 是你要執行的指令碼

看看這篇文章吧,可以解決你的問題
http://blog.csdn.net/vindo/article/details/3610587……


謝謝各位,問題已經解決。謝謝!

謝謝上面各位的回答,綜合一下,問題解決!嘿嘿!

求教怎麼解決的?我的指令碼是擷取虛擬機器ip的,現在也無法執行

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.