2014-08-29 105 views
0

我有一個文件系統目錄,我主要在我的常規用戶模式(git存儲庫)訪問。偶爾,升級的「根」用戶進程將在該目錄中的某個位置創建新文件或在某個子目錄中創建一個文件。這使得我無法再自己更改所有文件,並且Git將無法拉取更改(除非我將Git作爲提升的root用戶運行)。Windows 7文件權限 - 強制目錄權限遞歸到所有當前和將來的文件

我可以在Windows資源管理器每天遞歸設置的權限,但這個過程需要很長的時間,因爲必須有成百上千的文件中有對重置權限。

有Windows中的任何辦法讓它這樣一個目錄將永遠是可寫的所有用戶?

回答

0

您無法強制其他用戶創建的文件和目錄具有某些權限。他們擁有他們創建的文件和目錄,作爲擁有者,他們可以隨時將權限設置爲任何他們想要的。但是,您可以執行的操作是確保在創建文件和目錄時使用的默認權限允許您訪問文件和目錄。 >安全 - - >高級

查看高級安全爲您的問題的一個目錄中的資源管理器中右擊它並選擇屬性設置。查找可以訪問該目錄的條目(可能是Hostname \ Users或Hostname \ Yourname),並確保在「適用於」列下面顯示「此文件夾,子文件夾和文件」。如果它沒有這樣說,那麼這個權限不會被目錄中創建的任何子目錄或文件繼承。

爲了解決這個問題去你的git倉庫(或者,如果你已經改變了這上面一個目錄的權限可能更高),並查看它的頂級目錄是在資源管理器的高級安全設置。按更改權限按鈕並選擇允許您訪問該目錄的條目,然後按編輯。在出現的對話框中,將「適用於」下拉框更改爲「此文件夾,子文件夾和文件」。確保「僅將這些權限應用於此容器中的對象和/或容器」未選中,然後單擊確定。您可能希望對其他任何不可繼承的權限條目重複此操作。在「高級設置」對話框中選中「用來自此對象的可繼承權限替換所有子對象權限」,然後按確定。這應該使得任何人在該目錄下創建的任何內容默認情況下都擁有您設置爲可繼承的權限。

這不會產生他們所想要的任何權限的文件阻止問題的「根」的過程(通常稱爲管理員或系統進程取決於實際用戶),但通常在創建文件時大多數進程將使用默認的權限。如果您在進程中確實存在明確設置權限的問題,並且您無法更改其行爲,那麼您可以做的事情不多。您可以將文件移動到FAT32或exFAT格式的分區。由於這些文件系統不支持訪問控制列表,您永遠不會被拒絕讀取文件。它們確實支持只讀屬性,因此如果進程明確設置MS-DOS樣式的只讀屬性,仍然可以拒絕寫入權限。

+0

我按照你的指示,但仍然有問題的黨「根」進程設置自己的權限在一些文件。我最終重構了「根」進程,以便它們能夠以常規用戶模式運行,但仍能夠啓動和停止系統服務。我在這裏找到的信息很有用:[link](https://stackoverflow.com/questions/4436558/start-stop-a-windows-service-from-a-non-administrator-user-account/15781818#15781818) – 11101101b 2014-09-03 19:51:41