簡體   English   中英

用戶ubuntu拒絕權限,但.csv文件上的用戶www-data拒絕該權限

[英]Permission denied with user ubuntu but not with user www-data on .csv file

嘗試使用php訪問時,我僅在單個.csv文件上看到奇怪的Ubuntu權限問題。 該文件是ubuntu:www-data擁有的list.csv,而ubuntu用戶是www-data組的一部分。 該網站的其余部分工作正常,沒有權限問題,但是在嘗試使用php加載此文件時出現以下錯誤:

PHP Fatal error:  Uncaught exception 'RuntimeException' with message 'SplFileObject::__construct(xxx/list.csv): failed to open stream: Permission denied'

如果我使用了www-data:www-data list.csv,則可以加載php。 為什么即使ubuntu是www-data組的一部分,如果ubuntu擁有此文件,為什么也不能通過php加載該文件?

另外,我可以以ubuntu用戶(vi list.csv)讀寫方式打開此文件。

編輯:對該文件的權限是:-rwxr-xr-x 1 ubuntu www-data

再次編輯:將權限更改為0644 -rw-r--r-- 1 ubuntu www-data沒有運氣

編輯更多內容:文件位於具有x權限的目錄中:drwxr-xr-x 3 ubuntu www-data 4096 Jul 28 23:09 content /

不確定它是否與執行權限有關,因為我可以將所有者更改為www-data:www-data並加載文件。 看來這與擁有文件而不是www-data的用戶ubuntu有關

編輯:錯誤的這行代碼,嘗試將.csv文件加載到php SplFileObject中:

SplFileObject::__construct("xxx/content/list.csv");

我可以在OP中看到,所有者和組之間的唯一區別是write權限(您已經在組中嘗試了xrr )。 因此,我懷疑您的PHP正在嘗試以write模式打開文件。

要確認此嘗試:

$myCSV = new SplFileInfo('YOUR CSV');
$myCSV->isReadable(); // should be true
$myCSV->isWritable();   //expecting this to be false

編輯:如果那是您的程序的問題,您可以使用$myCSV->openFile('r')以讀取模式打開文件

您的服務器可能設置了PHP open_basedir參數,這將阻止訪問該目錄之外的任何文件。

為了驗證這一點,請查看相關的php.ini文件(例如/etc/php5/apache2/php.ini),並檢查是否設置了open_basedir行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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