4

我在理解某些特定文件权限行为时遇到了一些问题。下面是重现步骤:Windows Server 2008 R2文件权限

  1. 登录到服务器使用默认的管理员帐户

  2. C语言创建一个文本文件(TESTFILE.TXT):\ ProgramData包含的任意文本

  3. 创建新的用户帐户并使其成为管理员组的成员

  4. 使用新帐户登录并打开C:\ ProgramData \ testfile.txt

  5. 编辑文本并试图挽救

一旦点击保存,我带有另存为对话框,这表明我没有必要的权限来编辑文件。考虑到新的用户帐户是管理员的成员,这看起来很奇怪。

当我查看文件的权限时,我可以看到列出了三个组:System,Administrators和Users。 SYSTEM和Administrators具有完全权限,但是,用户只能读取&执行和读取权限检查。

看起来,当我从新用户帐户打开testfile.txt时,它将在Users组的上下文中打开,尽管它是Administrators的成员,这是正确的吗?这当然会解释这种行为。

对我来说,这是一个问题的原因是,如果我通过'以管理员身份运行'部署应用程序,普通用户是否可以编辑我安装到ProgramData的文本文件。

此行为仅限于Windows服务器,还是在Vista和Win7中相同。

回答

1

这是由UAC造成的,作为管理员组是特殊的,但是你可以不UAC提示访问该文件的原因,是因为你将不得不在文件系统上的显式ACL对象,可以在不使用内置管理员组的情况下授予您访问权限。

您可能是该文件的所有者,并且Creator Owner : Full Control的ACL将(默认情况下)存在。作为所有者,您还应该在您的帐户中看到明确的ACL,例如DOMAIN\Fly_Trap : Full Control

0

我刚刚在Windows 7上测试过,并且可以在ProgramData下写入文件而没有问题。你可以通过启动一个提升的记事本来测试你是否有UAC问题(在开始菜单中单击右键并以管理员身份运行)。如果提升的记事本可以写入文件,那么你打算以管理员身份运行的应用程序也将能够。如果提升的记事本不能写,那么提升你的应用程序将无济于事。

0

我在windows 2008 r2上测试过它。这是它假设的。它叫做uac。你创建了普通用户,并且想要编辑(即使是使用本地管理员组)文件,该文件是所有者是管理员的。你不能这样做,但你可以授予管理员权限并编辑该文件。

更多细节 http://en.wikipedia.org/wiki/User_Account_Control