Samba

設置公共文件夾的權限

  • January 1, 2015

我正在嘗試使用 Linux 作為文件伺服器來設置一個小型家庭網路,並且遇到了一些我似乎無法解決的文件夾權限問題。設置:

  1. 配置了 Samba 的 Ubuntu 14.04 Linux 文件伺服器。
  2. 幾台 Windows 7 客戶端電腦。

家裡的每個人都獲得了 Linux 文件伺服器的使用者名/密碼,他們可以使用 SSH/Putty/其他方式登錄伺服器。

Linux 文件伺服器上的 Samba 已配置為以可寫模式將幾個目錄共享給 Windows,並且所有客戶端機器都可以看到並讀取和寫入文件。例如,假設 /media/data/photos 被共享為 \fs01\photos。所有 Windows 使用者都可以寫入此照片目錄,並且效果很好。他們可以製作子目錄,放圖片等等,一切正常。

問題是我希望這些共享(以及它們下面的所有目錄)對所有人免費。任何使用者都應該能夠編輯/重命名/移動/複製/刪除這些文件夾中的任何文件。當一個使用者嘗試移動/組織/刪除/重命名其他使用者創建的文件時,就會出現問題。因此,假設使用者 A 創建了 /media/data/photos/2014NewYearsEve 並且使用者 B 決定它確實應該是 /media/data/photos/2014/NewYearsEve 。以我現在設置的方式,我不斷收到權限錯誤。

我知道在Linux中預設情況下,創建文件的使用者是文件的所有者,所以我知道錯誤來自哪裡,我知道如何手動更正它(chown和chmod,然後任何使用者都可以操作文件很好)。但是由於共享(例如/media/data/photos)是“通用的”,我希望權限在創建文件和目錄時自動反映這一點。來自 Windows 背景(這是我的第一個真正的 Linux 設置),我對如何解決這個問題感到很困惑。

這是我嘗試過的(基於網際網路上的一大堆文章,stackexchange 和其他東西):

我將目錄 /media/data/photos 的組更改為“nogroup”(sudo chown nobody:nogroup /media/data/photos)我在 /media/data/photos 目錄上設置了 setgid 標誌(sudo chmod g+s /媒體/數據/照片)。

在此之後,放入共享中的文件似乎獲得了正確的組分配(ls -l 顯示新文件和子目錄的 nogroup)。但是組中似乎缺少移動文件所需的執行權(我認為它是必要的權利嗎?)( ls -l 中的權限是 -rwxrw-rw- 用於文件和 drwxr-sr-x+ 用於目錄)。

如何讓 Linux 自動為文件和目錄的組添加 x 位?或者更一般地說,我如何讓所有股票都免費?

創建一個名為 Family 的新組。為附加到 samba 共享的所有文件夾授予 Family RWX 權限,即 777,並使 family 成為文件夾的擁有組。然後將每個家庭成員添加到組家庭。

  1. groupadd family
  2. chown -Rv root:family /linux/path/to/samba/share
  3. useradd -G family *username for mom*
  4. useradd -G family *username for dad*
  5. 重複步驟 3 和 4,直到所有家庭成員都在家庭中。
  6. chmod -Rv 0777 /linux/path/to/samba/share

新項目將繼承所有者的權限,但如果所有者是 的成員family,則無關緊要

引用自:https://unix.stackexchange.com/questions/176952