Linux

自動賦予 Apache 對新添加的 git clone 文件的寫權限(-R g+rw)

  • July 11, 2014

我在允許 Apache 自動對從 git 儲存庫中提取的 .htaccess 文件具有寫入權限時遇到問題。

這是我的過程:

我以新創建的使用者“ webadmin ”登錄,該使用者已添加到組“ apache ”(我在 CentOS 上,所以它相當於www-data)並且我創建了一個空目錄:

/var/www/html/test

我已經確保在這個目錄上,我做了以下事情:

$ umask 002 
$ chown -R apache:apache /var/www/html/test
$ chmod -R g+rw /var/www/html/test 

這是為了確保該目錄歸apache ”所有,並且由於我的使用者webadmin ”是該組的一部分,我假設我與該使用者一起添加的任何內容也可由apache使用者寫入(php 腳本)。

仍然使用webadmin使用者,然後我執行

git clone myrepo.git .

這會將我的 WordPress 網站文件拉到目錄中。其中包括一個 .htaccess 文件。該文件需要 WordPress 可寫,以便它可以修改規則。拉下的所有文件都歸webadminapache組所有。

無論出於何種原因,在我再次執行之前,預設情況下 .htaccess 文件都不能被 apache 寫入:

$ chmod -R g+rw /var/www/html/test 

為什麼我必須再次執行此命令?有什麼辦法可以讓這個文件在被拉下時由apache自動寫入而無需執行-R g+rw命令?

您的需求與此 stackoverflow 文章完全相反。簡而言之,您可以選擇:

  • 執行前適當設置 umask(根據您的文章,大概設置為 002)git
  • 添加 git hook 腳本以在複製後更改文件權限。

第一種選擇通常更容易做到。

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