Linux

Samba、Apache 和 SVN。獲得正確的權限

  • August 21, 2010

我有兩台機器我工作:

  1. Windows 客戶端(開發機)
  2. Linux 網路伺服器 (Ubuntu)

在 Linux 伺服器上,我安裝了 Apache、Samba 和 SVN。

我創建了一個映射到 htdocs/ 目錄的 samba 共享,以便我可以從 Windows 訪問 Web 文件。

以下說明了我的工作流程:

  1. 從 Linux 伺服器上的命令行,我將 Web 項目的工作副本從遠端伺服器檢出到本地 Linux 伺服器的 htdocs 目錄中。
  2. 在 Windows 機器上,我訪問這些文件(使用 samba)並在我的編輯器中編輯它們並在 Web 瀏覽器中測試它們
  3. 回到 Linux 機器上,我將我的工作簽入到遠端伺服器。

我遇到的問題是,目前我能夠通過 Samba 編輯 Windows 框上的文件,我必須將文件的所有者更改為沒人(apache 使用者)並將 Samba 共享設置為使用 SHARE 權限。

當我嘗試使用 SVN 送出和更新等時,我不能,因為我的 Linux 使用者不是“nobody”並且沒有這樣做的權限。所以我必須成為 root 做一個 SVN

$$ command $$然後將所有文件改回“nobody”,這樣我就無法在 Windows 上進行編輯。 我想做的是讓我的本地 Linux 使用者擁有 Web 文件,這將使 SVN 命令能夠工作,並且 Windows(通過 samba)也可以使用同一個使用者。

我怎樣才能讓它工作,有沒有辦法讓 Windows 和 Linux 使用者匹配?

擁有一個組擁有的文件和目錄,Apache 以. 製作目錄SGID

chgrp -R group1 /path/to/htdocs
find  /path/to/htdocs -type d -exec chmod 2775 {} \;

在 SAMBA 共享下指定該組,可以使用force group=group1.

使您使用該組的成員向 SAMBA 進行身份驗證的使用者。在 SAMBA 中的共享內valid users和共享內指定此使用者。write list這也應該允許您送出到 SVN。

此外,在 smb.conf 中指定create mask=0664directory mask=2775,它將在創建時設置適當的權限。如果文件由與 Apache 相同的使用者擁有,您可以在這兩個設置上將最後一位設置為 0。

如果一切都一致地應用,您應該能夠執行所有所需的操作,而不會對任何功能產生負面影響。

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