Windows

共享 Windows 文件夾 - 子文件夾權限問題

  • September 20, 2018

Windows Server(任何版本),帶有子文件夾的共享文件夾,如下所示:

Department1
    Jim
    John

其中 Department1 是網路共享,Jim / John 是子文件夾。

我想要的是只有Jim 對“Jim”文件夾有寫訪問權(即只有Jim 可以在Jim 子文件夾中創建文件和文件夾),並且只有John 對“John”文件夾有寫訪問權。

聽起來很容易,但我找不到這樣做的方法。

以下是權限的設置方式:

Folder "Department1"
   share permissions: Everyone - Change + Read
   NTFS permissions:  Jim - List Folder Contents
                      John - List Folder Contents

Subfolder "Jim"
   NTFS permissions: Jim - Full Control

Subfolder "John"
   NTFS permissions: John - Full Control

會發生什麼:

  • 在父共享文件夾“Department1”中,Jim 和 John 都可以創建、編輯、修改和讀取任何文件和文件夾。
  • Jim 可以創建、編輯、修改和讀取他自己以及 John 文件夾中的任何文件和文件夾
  • John 可以創建、編輯、修改和讀取他自己以及 Jim 的文件夾中的任何文件和文件夾

(我從“有效權限”工具以及簡單地以 Jim 身份登錄並嘗試它時都看到了這個結果)。

應該發生的是 - 沒有人可以在父文件夾中創建文件,而 Jim 不應該能夠在 John 的文件夾中創建/修改文件 + 反之亦然。

如果我從父文件夾中取出“列出文件夾內容”權限,Jim 和 John 都無法訪問該共享。但是 - 問題是:僅僅添加 LIST FOLDER 權限似乎賦予了兩個使用者創建、讀取和修改文件和文件夾的權利……?這怎麼可能是正確的或合乎邏輯的?

繼承似乎與它沒有任何關係 - 通常您可以看到繼承的使用者和屬性顯示在子文件夾中,並且它們會變灰,因為它們無法更改 - 事實並非如此。(啟用繼承。)

將 Jim 和 John 作為單獨的共享共享可以處理它,但我不希望這樣 - 範例已簡化,實際上有數百個,它會導致來自網路的“扁平”非分層視圖,我必須避免。

為不打算訪問該文件夾的所有“其他”使用者添加 DENY 條目將非常笨拙 - 有數百個。

所以我的問題:

  1. 為什麼會這樣?這不合邏輯——一旦我授予 NTFS 訪問列表文件夾內容的權限,該使用者也可以讀取、寫入、修改文件和文件夾——應該是這樣嗎?
  2. 有沒有一種簡單的方法來配置它,使其按預期工作?我正在考慮關閉繼承 - 但我希望他自己創建的 Jim 的任何子文件夾都繼承 Jim 文件夾的權限,即使在共享上關閉了繼承,這種情況會發生嗎?

編輯

假設訪問上述範例中的文件夾總是從客戶端電腦通過網路訪問文件共享。(我知道如果 Jim / John 會在本地登錄文件伺服器,情況會有所不同,但這不是我的問題。)

更新

根據 Evan Anderson 的評論,我檢查了所有權限,發現一個從磁碟驅動器本身的安全權限繼承的條目。這是“伺服器\使用者”的“特殊權限”條目,我理解它是指該伺服器的本地使用者。該條目提供“創建文件”和“創建文件夾”訪問權限,並繼承到我的 Department1 和 Jim/John 文件夾。

我沒有創建那個條目。它似乎是 Windows 在我查看的每台伺服器上的每個磁碟驅動器上創建的預設條目。

伺服器 1\使用者的 ACL

刪除該條目會更改 Jim 和 John 在 Department1 文件夾和子文件夾上的有效權限,因此錯誤的 CreateFolder 和 CreateFile 權限不再適用——這正是我想要的。感謝埃文·安德森。

但是,這提出了兩個新問題:

  1. server\Users 條目適用於什麼?我的理解似乎是錯誤的,這僅適用於伺服器的本地使用者。Jim 和 John 是域登錄名,並且不作為伺服器上的本地使用者存在。那麼 Server\Users 適用於伺服器的任何和所有使用者是否正確,無論是從網路登錄還是作為伺服器上的本地使用者存在?
  2. 似乎每個磁碟驅動器都有這個特殊權限條目,然後繼承到該驅動器上的所有文件夾 - 讓每個驅動器都具有預設條目的伺服器\使用者組的 CreateFile 和 CreateFolders 的目的是什麼?對我來說,這聽起來像是一個巨大的隱形陷阱,讓每個人都試圖在 Windows 共享上設置適當的權限。(如果屬實,任何教程都應該以“從磁碟驅動器中刪除 Server\Users 權限條目”開始。)

更新 2

我在MSDN上找到了有關 Server\Users 組的以下數據

“當電腦加入域時,域使用者組被添加到電腦上的使用者組中。”

這意味著 Jim 和 John 是 Server\Users 組的一部分,這就是這些權限適用的原因。所以我回答了問題 3,但問題 4 仍然存在——它背後應該有一些意義嗎?

感謝 Evan Anderson 的評論,我檢查了所有權限,並發現了一個繼承自磁碟驅動器本身的安全權限的條目。

它是“伺服器\使用者”的“特殊權限”條目。該條目提供“創建文件”和“創建文件夾”訪問權限,並繼承到我的 Department1 和 Jim/John 文件夾。

這似乎是 Windows 在我查看的每台伺服器上的每個磁碟驅動器上創建的預設條目。

在 Microsoft 域上,DomainUser 組會自動添加到 Server\User 組中,因此任何域使用者都可以通過 NTFS 權限進行讀寫訪問 - 因此,如果我將共享權限授予所有域使用者訪問共享,這會導致每個使用者都對共享上的所有文件夾具有讀寫訪問權限。

此預設條目存在於所有版本的 Windows 伺服器上,當您在本地登錄時,它使您可以輕鬆地在伺服器上添加/編輯文件夾。

但是,它會產生上述問題。我必須為特定使用者設置特定的共享權限,但顯然這不適用於子文件夾。

刪除該 server\user 條目揭示了我認為 Microsoft 將其保留在其預設 ACL 中的原因 - 在那一刻,只有管理員組有權訪問該文件夾,這意味著每次編輯、每次訪問(在本地server) 帶來了一個 UAC 彈窗,這很煩人。

(在 Server 2016 上,刪除 server\user 條目後,它會詢問您是否要添加使用者名以永久控制所有文件夾。這是一個很好的解決方法 - 它只是將該單個使用者添加到 ACL然後不帶

我還建議遵循 Evan Andersson 的非常好的答案他在評論中引用了該答案,並為設置文件夾層次結構提供了非常好的提示。

根據我的 MCITP 學習指南(Server 2008,所以它是舊的。文本和範例直接取自該教科書,作者/出版商保留所有權利):

  • 權限是繼承的

例如,如果Everyone 組被授予對Sales 文件夾的完全控制權,那麼Everyone 組將擁有對該文件夾中名為FY08 的新文件的完全控制權。(第 287 頁)

  • 權限是累積的

例如,假設您是 Sales 組和 Marketing 組的成員。如果 Sales 組被授予對某個文件夾的讀取權限,而 Marketing 組被授予對同一文件夾的寫入權限,那麼您的有效權限是讀取和寫入 - 兩個組的累積權限。(第 287 頁)

  • 拒絕優先

例如,如果 Joe 被明確拒絕對名為 Sales 的文件夾的寫入權限,但 Joe 是 Sales 組的成員,該組被授予對該文件夾的完全控制權,則 Joe 將無法寫入此文件夾。(第 287 頁)

在組合 NTFS 和共享權限時,您必須確定 NTFS 和共享權限的累積權限是什麼,然後確定兩者中限制性更強的。

同樣重要的是要記住共享權限僅在通過網路訪問共享時應用。因此,如果您以 Jim 的身份登錄到文件伺服器,您將獨占使用 NTFS 權限(在沒有 UNC 命名的情況下進行連接)。

我會嘗試的一件事是將列表內容權限應用於父文件夾,在本例中為 Department1,並將子文件夾的各自所有者設置為完全控制。這將使 NTFS+共享權限列出內容,因為這是最嚴格的。您還可以嘗試從子文件夾中刪除權限繼承。

我曾經在以前的雇主那裡管理過這樣的設置,但在我的一生中,我不記得我們是如何解決它的。但也許以上對你有幫助。明確拒絕所有其他使用者當然應該是可以避免的。

有關NTFS 和共享權限的簡短說明,另請參閱此內容。

編輯:作為附錄,預設情況下啟用權限繼承。我認為即使您禁用單個使用者文件夾的繼承,子文件夾(例如 Jim/Folder1)也會從其直接父級繼承。如果您願意,我可以對此進行試驗並最終回复您。

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