CentOS7用戶不繼承群組權限

CentOS7用戶不繼承群組權限

我一直在關注教程https://www.digitalocean.com/community/tutorials/how-to-install-wordpress-on-centos-7(以及所有先決教學)在我的新 CentOS7 伺服器上設定 WordPress。到目前為止一切正常

sudo chown -R apache:apache /var/www/html/*

據我了解,上述命令將所有權分配給 apache 使用者和群組。不過,通常情況下,我會使用自己的帳戶透過 putty 和 Filezilla 進行連接myuser,並希望為該帳戶啟用權限。

因此,除了上述命令之外,我還添加myuser到該apache群組並登出並重新登錄,但是當我嘗試在 html 資料夾中執行 CRUD 操作時,我仍然收到權限被拒絕的錯誤訊息。但是,如果我提升命令的sudo工作效率,那麼我對如何允許帳戶myuser執行文件操作感到有點困惑。有任何想法嗎?

答案1

您需要檢查所有權、權限和 selinux 上下文

所有權——聽起來你是對的。 CentOS7 上的擁有者:群組應該是 apache:apache。對於您的用戶,您必須新增 apache 作為補充群組。您可以使用 檢查這一點id myuser,如果 apache 沒有出現在群組清單中,請執行usermod -a -G apache myuser

權限 - 它們被列為 rwxrwxrwx。中間的 rwx 集是重要的部分,因為它透過群組控制存取(對於 myuser 來說也是如此)。您可能只需要讀取/寫入權限,因此 achmod -R 664 directoryname可能就足夠了(apache 使用者和群組讀/寫,其他人只讀)。您可以使用 檢查權限ls -l

注意:WordPress 通常包含一個隱藏的“.htaccess”文件,您需要手動應用 chmod 到該文件以及任何其他隱藏文件,因為遞歸 chmod / chown 將跳過它們。

SELinux 上下文 - 您可以使用這些來檢查ls -Z。要關閉 SELinux 強制,您可以運行setenforce 0- 這對於調試 SELinux 是否是罪魁禍首很有用,但是您應該在使用 完成測試後將其重新打開setenforce 1。如果 SELinux 是問題所在,那麼您可能需要做的是使用以下內容來變更檔案的上下文chcon -R -t httpd_sys_rw_content_t directoryname

注意:遞歸 chcon 也會跳過隱藏檔案(任何以「.」開頭的檔案)

附註:如果您使用符號鏈接,則應確保鏈接目錄和實際符號鏈接本身都具有適當的所有權/權限。要使用 chmod / chown 定位符號鏈接,請使用該-h標誌,如果定位目錄,請確保尾部斜杠不存在(例如,如果使用製表/var/www/html/linked_dir符補/var/www/html/linked_dir/全,請小心,因為它會自動添加尾部斜杠)

相關內容