簡體   English   中英

如何在php中以root身份訪問ubuntu文件

[英]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服務器將以該用戶和組運行。 如果你希望能夠寫入到一個特定的文件, chownwww-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM