我想就如何為以下用例配置 Windows-2012 中的權限提供一些建議:
- 每個用戶(我們稱他為
bob
)都運行一個應用程式(我們稱之為myapp
)。 myapp
c:\Users\bob\myapp
需要(1)下的所有檔案和資料夾的讀/寫權限bob
需要讀取/寫入權限c:\Users\bob\myapp\templates
。bob
無法讀取資料夾c:\Users\bob\myapp\logs
- 預設情況下,除非在3和4中指定,否則
bob
可以讀取以下任何檔案和資料夾c:\Users\bob\myapp\
我的背景是 Linux,我不太確定如何在 Windows Server 中組織它。
如果有人能指出我正確的方向,我將不勝感激!
(1) 我已製定了路徑。它將位於 Windows 中的某個位置。 (我認為這並不重要,但如果是的話請分享您的知識!)
編輯:Linux下的解決方案
bobapp
應用程式在使用者、群組下運作bobapp
。- 使用者在 user 下運行
bob
,該使用者是群組的一部分bobapp
- 下的所有文件和資料夾
/users/bob/myapp
均由使用者bobapp
、群組擁有bobapp
- 在 下
/users/bob/
,資料夾具有權限750
(所有者讀/寫/可執行,群組讀/可執行,所有人都沒有)和普通文件640
(所有者讀/寫,組讀,所有人都沒有),文件可執行750
(讀/寫/所有者可執行,群組讀取/可執行,所有人都不能執行) /users/bob/myapp/logs
擁有權限 700(擁有者可讀/寫/可執行,群組無權限,其他人無權限)
註1:對於運行在會話下的圖形應用程式來說,bobapp
要在會話下顯示bob
會是另一個問題,但是有很多選項可以允許bob
會話查看圖形應用程式並與圖形應用程式互動bobapp
。
註2: 在想要啟動sudo
的情況下使用,因為它需要暫時取得執行應用程式的權限。將受到很大限制,只允許以使用者身分啟動程式。bob
myapp
sudo
bob
bobapp
注意3:當應用程式或使用者建立新檔案和資料夾時,您需要注意建立新檔案和資料夾時將繼承的預設權限(幾個選項,可能我會使用類似這)
答案1
在Linux系統中你會如何解決這個問題?
由於應用程式在用戶上下文中運行,因此讀取和寫入權限是相同的。
您可以使用Cacls
或透過安裝程式例程設定目錄權限。
您可能會使主目錄c:\Users\bob\myapp
可讀寫。
將這些權限繼承到除c:\Users\bob\myapp\logs
.
你sudo
在賞金中提到過,所以我猜你也看到了同樣的問題。您無法在應用程式在同一上下文中運行的情況下應用限制。因此,您要么需要在不同的用戶上下文下運行應用程序,要么需要為目錄找到不同的解決方案logs
。您可以取消設定權限、讀取/寫入,然後再次設定權限。由於使用者在建立目錄時就是該目錄的擁有者,因此您可以隨時變更權限。
關於您的 Windows 路徑問題:有一些受保護的路徑C:\Program Files\
需要C:\Windows\
管理權限(並由 TrustedInstaller 擁有)。因此在哪裡建立目錄很重要。
編輯:
從OP的更新中提到sudo
。需要使用此工具以其他使用者身分執行程序,通常配置為不需要密碼來變更上下文。據我所知,原生 Windows 中沒有類似的功能。
你可以看看討論這裡關於如何實現提升的提示等,但大多數都需要管理權限和/或要求您輸入密碼,例如runas
.
另外 ”身份驗證後冒充用戶端「可能會有所幫助,但我從未使用過它,也無法透露任何有關它的資訊。