Nginx

Web 應用程序中的權限、所有權和分組無故更改

  • January 9, 2018

我有一個 Ubuntu 16.04 Nginx 伺服器環境,在/var/www/html.

我的 Nginx 使用者是www-data.

每次我添加一個 webapp 時,我都會執行:

chown www-data:www-data /var/www/html/* -R
find /var/www/html/* -type d -exec chmod 755 {} \;
find /var/www/html/* -type f -exec chmod 644 {} \;

似乎某些軟體(可能是 Nginx?)更改了權限,因此至少某些目錄(可能還有它們的文件)變得不可寫

我的問題是任何軟體為什麼以及如何更改我的權限,以及處理這種情況的最佳方法是什麼?

我可以添加一個每日 crontask 以恢復上述更改,但有些人可能不認為這是一個“整潔”的解決方案,最好更改任何可疑軟體本身,這樣它就不會“敢”再次更改這些權限。

該問題是由另一個 cron 命令引起的 - 用於更新 WordPress 核心的 WP-CLI 命令。還有一個類似的命令來更新可能導致類似問題的外掛和主題。

以下是 3 個命令(核心、外掛、主題)+ 3 個緊隨其後執行的命令,用於修復更新導致的權限偏差:

for dir in /var/www/html/*/; do cd "$dir" && /usr/local/bin/wp plugin update --all --allow-root; done
for dir in /var/www/html/*/; do cd "$dir" && /usr/local/bin/wp core update --allow-root; done
for dir in /var/www/html/*/; do cd "$dir" && /usr/local/bin/wp theme update --all --allow-root; done
chown www-data:www-data /var/www/html/* -R
find /var/www/html/* -type d -exec chmod 755 {} \;
find /var/www/html/* -type f -exec chmod 644 {} \;

我對 Moodle 也有類似的問題,但是在我的情況下,文件的所有權也發生了變化root:root。更改的文件和目錄是記憶體文件,並在升級版本時引起問題。我終於意識到實際上是 Moodle 中的一個錯誤正在更改權限,但是所有權問題是由於我的httpd程序以使用者身份root而不是apache使用者身份執行。說明可在此處找到httpd此處為nginx

我不得不懷疑你的問題和我的很相似。如果您可以提供一些受此問題影響的 WordPress 安裝中的文件/目錄的具體範例,以及您目前正在使用的外掛列表,這將非常有用。我的問題是由外掛中的錯誤引起的。

引用自:https://serverfault.com/questions/890322