環境
- PHP -V輸出: PHP 5.3.5-1ubuntu7.2用了Suhosin貼片(CLI)(建:2011年5月2日23點00分17秒)版權所有(C)1997-2009 PHP的集團Zend引擎V2.3.0,版權所有(C)1998-2010 Zend技術
- 貓的/ etc /輸出問題:的Ubuntu 11.04
- 的Apache2 -V輸出中:服務器版本:阿帕奇/ 2.2.17 (Ubuntu)服務器內置:Sep 1 2011 09:31:14
- 瀏覽器關於輸出:火狐6.0.2
PS -AUX
輸出繼電器
root 2943 0.0 0.3 206420 12428 ? Ss Sep19 0:20 /usr/sbin/apache2 -k start
www-data 18658 0.0 0.2 208552 11096 ? S Sep25 0:00 /usr/sbin/apache2 -k start
www-data 18659 0.0 0.3 208976 12036 ? S Sep25 0:00 /usr/sbin/apache2 -k start
www-data 18660 0.0 0.3 210532 12476 ? S Sep25 0:00 /usr/sbin/apache2 -k start
www-data 18661 0.0 0.3 210276 11820 ? S Sep25 0:00 /usr/sbin/apache2 -k start
www-data 18662 0.0 0.2 206948 10236 ? S Sep25 0:00 /usr/sbin/apache2 -k start
www-data 20037 0.0 0.3 208976 12128 ? S 08:22 0:00 /usr/sbin/apache2 -k start
www-data 20039 0.0 0.3 209132 11748 ? S 08:23 0:00 /usr/sbin/apache2 -k start
www-data 20120 0.0 0.3 209004 12000 ? S 09:04 0:00 /usr/sbin/apache2 -k start
文件權限
drwxr-xr-x 2 www-data www-data 4096 2011-09-26 15:24 .
drwxr-xr-x 4 www-data www-data 4096 2011-08-26 11:31 ..
-rw-r--r-- 1 root root 161976 2011-08-26 16:26 market.txt
-rw-r--r-- 1 root root 0 2011-09-26 14:55 test1.txt
-rw-r--r-- 1 root root 0 2011-09-26 14:55 test2.txt
-rw-r--r-- 1 root root 0 2011-09-26 14:55 test3.txt
-rw-r--r-- 1 root root 0 2011-09-26 14:55 test4.txt
-rw-r--r-- 1 root root 0 2011-09-26 15:02 test5.txt
代碼
rename($file, "$dest/$file");
問題
當我在上面的文件權限部分中列出的文件上運行上述代碼時,它將文件從其當前位置正確移動到新位置並刪除原始文件。當apache2作爲www-data運行並且這些文件由root擁有並且只對非root用戶具有讀訪問權時,這怎麼可能?在PHP文件,它說:PHP rename()忽略權限?
如果目標文件系統不允許CHOWN警告可能會產生()或搭配chmod()系統調用要對文件所做的 - 例如,如果目標文件系統是FAT文件系統。
rename()在調用過程中調用其中的哪一個系統函數?如果是這樣,爲什麼?不管怎樣,www數據不應該能夠chown/chmod root擁有的文件。
任何人都可以向我解釋這是怎麼發生的?
其他信息
- 我已經通過根和WWW的數據擁有的PHP腳本嘗試這樣做,它的工作原理。
我試圖提供儘可能多的相關信息,但讓我知道你是否需要其他東西。
這是有道理的。我測試了將文件夾chown到root:root,我無法移動該文件。謝謝! –