日誌檔案的權限被拒絕

日誌檔案的權限被拒絕

我希望能夠以普通使用者身分查看 apache 的日誌檔案。我已經以 root 身份將此文件設置為 777,但仍然無法以普通用戶身份查看它們,這是為什麼?

#I have set permissions for everyone
root@senior:/var/log/apache2# ls -l
total 200
-rwxrwxrwx 1 root root   1951 Feb 27 23:07 access.log
-rwxrwxrwx 1 root root  89508 Feb 27 23:07 error.log
-rwxrwxrwx 1 root root 101601 Feb 27 23:06 other_vhosts_access.log

#I have also set directory permission 
root@senior:/var/log# ls -l
drw-rw-r-- 2 root        adm          4096 Feb 27 23:08 apache2

但還是無法查看文件

kubi@senior:$ ls -l /var/log/apache2/
ls: cannot access /var/log/apache2/other_vhosts_access.log: Permission denied
ls: cannot access /var/log/apache2/error.log: Permission denied
ls: cannot access /var/log/apache2/access.log: Permission denied
total 0
-????????? ? ? ? ?            ? access.log
-????????? ? ? ? ?            ? error.log
-????????? ? ? ? ?            ? other_vhosts_access.log
kubi@senior:/$ ls /var/log/apache2/error.log
ls: cannot access /var/log/apache2/error.log: Permission denied

我正在運行 debian

答案1

該目錄應該是750,不是664。另外,您應該將用戶添加到adm群組中。這實際上很大程度上是該小組的重點adm:閱讀日誌。

目錄的權限與檔案的權限有些不同。簡單來說,目錄是名稱和地址的清單:名稱是檔案名,地址是檔案的實際位置。權限控制x對此清單的存取:為了尋找特定檔案的位址,您需要在其父目錄以及該目錄的父目錄上執行位,等等。r清單files:如果有--x,並且知道文件名,則可以存取該文件,但不能ls。最後,w控制建立、重新命名和刪除檔案。因此,為了存取文件,您始終需要該x位。

另外:不要將日誌檔案設為 777。 它們應該是 644 或 640,兩者之一。有兩個原因:第一,它們不可執行,因此該x位元應該關閉。其次,更重要的是,一般使用者應該絕不只能寫入 Apache 日誌文件,只能讀取。這是伺服器中潛在的安全漏洞。

答案2

您需要在目錄上設定執行標誌才能允許列出所包含的檔案。

但更好的解決方案不是更改檔案權限,而是將使用者新增至管理群組(adm)

相關內容