我想就如何针对以下用例配置 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
。需要此工具以另一个用户身份运行程序,通常配置为不需要密码即可更改上下文。据我所知,在 vanilla Windows 中没有等效工具。
您可以查看讨论这里关于如何实现提升提示等,但大多数情况下,这些都需要管理权限和/或需要您输入密码runas
。
此外“身份验证后模拟客户端“可能会有帮助,但我从未使用过它并且对此没有任何了解。