[英]How to access ubuntu files as root in php
我有一個在第一台服務器上運行的PHP腳本,它卷曲了第二台服務器上的PHP文件。
$service_url = 'http://example.com/version_check.php?f_path='.$path;
在第二台服務器上,該PHP文件( version_check.php
)讀取/var/www
目錄中的文件並進行處理。 現在,我想知道如何使用root特權訪問/var/www
目錄。 我需要root特權,因為我正在該目錄中執行一些fwrite
。
你不知道 只需使特定文件或文件夾可被www-data寫入即可。 以root身份運行PHP腳本將是一個嚴重的安全問題。 更重要的是,因為我不希望您遵循任何通用的安全准則(如果您這樣做了,則您不希望以root用戶身份運行腳本)。
如果在Ubuntu上使用默認配置,則將有一個名為www-data
的用戶和組,您的Web服務器將以該用戶和組運行。 如果你希望能夠寫入到一個特定的文件, chown
它www-data
:
$ chown www-data:www-data /var/www/my-file
或者,保留當前所有權,更改組,使其可寫:
$ chgrp www-data /var/www/my-file
$ chmod g+w /var/www/my-file
作為最后的選擇,如果您不想更改所有權或組,請使其世界可寫:
$ chmod a+w /var/www/my-file
但這不是一個好主意-系統上的任何服務(無論好壞)都可以修改文件,而不僅僅是Web服務器。 如果可以的話,應該避免使用它。
Kumaran,問題不在於PHP; 問題是用戶正在訪問文件。 您的PHP腳本由apache用戶運行(www-data或apache,您需要檢查apache運行時使用的用戶名)。 默認情況下, apache用戶可以訪問某些文件。 為了能夠使用root特權訪問文件, apache用戶需要獲得這樣做的權限。
允許這種情況發生是很大的安全風險。 您需要重新考慮整個體系結構。 為什么PHP首先要訪問根文件? 一種選擇是使有問題的文件可由apache用戶寫入
/ root僅對root用戶可讀。 因此,您需要首先將“移動”文件移動到/ var / www並更改其權限,以便www數據用戶可以讀取它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.