透過php呼叫程式的權限問題 - Linux

Table of Contents

想請教一個問題.....
我的系統是ubuntu 64bit
php程式中,透過exec呼叫本機端程式執行,權限(執行者)是誰呢?

我寫了一隻b.php,裡面執行exec("whoami")
透過網頁看,我發現輸出結果是www-data
也就是說我的權限(執行身分)是www-data,這樣應該沒錯吧?

之後,我用root身分,在shell下指令:
sudo -u www-data php a.php
這樣的程式是可以動的

但是,同樣那隻檔案,我透過網頁去執行,也就是說讓apache去執行這隻程式
這隻程式就不能動了

我猜測是權限問題...
不知道有沒有人有經驗?

程式重點內容:
exec('Xvfb :1 -screen 0 640x480x24 -nolisten tcp -audit 4 -auth X1.cfg &
export DISPLAY=:1;cd /home/kuster/ss/html2image_i368;./html2image
tw.yahoo.com /var/www/p/tyc.jpg;killall Xvfb', $out);

是個網頁轉圖片的程式...
謝謝!

--

All Comments

Zora avatarZora2009-08-08
1. php runner
Agatha avatarAgatha2009-08-09
2. www-data的shell是什麼?
Todd Johnson avatarTodd Johnson2009-08-11
Xvfb這樣會不會有重複執行的問題啊 雖然應該不影響使用
James avatarJames2009-08-13
Xvfb也用完整路徑?
歐 我看道友killall 那就不會重複執行
Charlotte avatarCharlotte2009-08-13
參考PHP板的arrack給的資料,我決定讓php直接使用root權限
這樣問題就解決了~ 感謝各位的幫忙
Jack avatarJack2009-08-18
也就是說 php 的程式如果有洞,root 就送給人家了 @.@