我在 EC2 中運行 CentOS 虛擬機器。我以 ec2-user 身份使用 ssh,並希望為即將部署的應用程式建立一個日誌資料夾:
sudo mkdir /var/log/search-api
sudo chown ec2-user /var/log/search-api
現在我正在ls
該資料夾上運行並獲得Permissions denied
:
[ec2-user@box_name ~]$ ls /var/log/search-api
ls: cannot access /var/log/search-api: Permission denied
當我嘗試將文件寫入該資料夾時,也會發生同樣的情況:
[ec2-user@box_name ~]$ echo 'test' > /var/log/search-api/aaa.log
-bash: /var/log/search-api/aaa.log: Permission denied
為什麼我沒有權限列出我擁有的資料夾或向其中寫入內容?
答案1
假設沒有 ACL,您需要對所有目錄(從根目錄)具有「執行」權限才能存取給定檔案(無論您是否擁有該檔案)。
答案2
在 CentOS 中,您還需要注意 SELinux 標籤。它們不僅僅是任意的東西,但是如果您決定使用非標準用戶將非標準的東西寫入非標準的地方,您可能會被燒毀。
請澄清使用什麼是 SELinux 標籤ls -Z
。還有您的審核日誌中與 AVC 相關的內容。