簡體   English   中英

PHP-向用戶授予對ubuntu中root擁有的文件的權限

[英]PHP - Grant a user permissions to file owned by root in ubuntu

我正在使用Jasperreports生成報告。 當我生成新報告時,將由root擁有644的權限。 因此其他用戶沒有查看此報告的權限。我想更改文件的所有權或更改權限。這樣每個人都可以查看或下載報告。

我嘗試了以下php函數

chmod($item, 0777);   

chown($path, 'www-data');

它給

錯誤:沒有權限執行此操作

因為它的根用戶和當前用戶都是www-data。 有人請幫我

實際上,根據您的發言,所有用戶都有權查看該文件。 644表示所有者可以讀寫,而組和其他人只能讀取。 如果您的腳本在讀取該文件時出錯,則可能是由於is路徑中目錄的權限,而不是文件本身。

如果您可以像這樣更改root擁有的文件的所有者或權限,那么它將破壞Unix文件權限的整個概念。 想一想。

但是,您始終可以更改運行這些報表的用戶,或者在報表生成側添加邏輯以作為擁有文件的用戶移動或更改文件的權限。

順便說一句,chmod 777是僅由對unix權限了解甚少的人使用的丑陋kludge。 專業人士不這樣做。 您應該將對Unix文件權限的了解提高到一個新的水平: https : //www.tutorialspoint.com/unix/unix-file-permission.htm看起來很有希望。

根據手冊,所有者和超級賣方有權這樣做。

而且您只修改文件mod或所有者,不會這樣做。 您還必須更改路徑。

wn

嘗試將文件文件名的所有者更改為用戶user。 只有超級用戶可以更改文件的所有者。

注意:該功能不適用於遠程文件,因為必須通過服務器的文件系統訪問要檢查的文件。

注意:啟用安全模式后,PHP會檢查正在操作的文件或目錄是否與正在執行的腳本具有相同的UID(所有者)。

chmod

嘗試將指定文件的模式更改為mode中給定的模式。 注意:當前用戶是運行PHP的用戶。 您可能不是用於普通Shell或FTP訪問的用戶。 在大多數系統上,只有擁有該文件的用戶才能更改該模式。

注意:該功能不適用於遠程文件,因為必須通過服務器的文件系統訪問要檢查的文件。

注意:啟用安全模式后,PHP會檢查您將要操作的文件或目錄是否與正在執行的腳本具有相同的UID(所有者)。 另外,您不能設置SUID,SGID和粘性位。

暫無
暫無

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

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