2015-04-14 115 views
1

Windows 7,SP 1.我在C:\中有一个文件,我想要写入(我知道,我不应该,但让我们忽略)。我知道作为一个用户,甚至没有提升的管理员,我不能。所以我为该组用户添加了写入权限,但这没有帮助。即使通过“完全控制”权限添加我的用户也无济于事。然而,“有效权限”对话框显示了我的用户的写入权限。即使设置了写入权限,也无法写入C:中的文件

如何设置文件权限,以便我可以写入文件?我错过了什么?

编辑:如果这个问题看起来不像程序员那么重要:作为一名程序员,我真的很想理解为什么文件无法打开以及文件权限在提升时如何真正起作用。

编辑2:任何人都应该可以自己尝试:只需打开管理提示符,在C:\中创建一个文本文件,然后尝试从常规浏览器访问它,而不用提升。

+0

您不能在没有提升的情况下提升访问权限,并且不需要提升访问权限的提升权限即可忽略。唯一的选择是C:\上的激进icacls/setintegritylevel或禁用UAC。简而言之,请勿写入C:\ –

+2

请参见[强制完整性控制](https://msdn.microsoft.com/zh-cn/library/bb648648),如需更深入的解释,请阅读[Windows Vista完整性机制技术参考](https://msdn.microsoft.com/zh-cn/library/bb625964)。请注意,系统驱动器具有高度完整性标签,可被根目录中的文件继承。您可以使用[icacls](https://technet.microsoft.com/zh-cn/library/cc753525)在根目录中的文件上设置DACL和完整性级别,而无需修改目录本身。 – eryksun

+0

@eryksun:就是这样!谢谢!如果你不知道该找什么,这个答案在网上很难找到。请从中做出回答,以便我可以放弃它。 – cxxl

回答

1

由于eryksun在评论中写道,这一解决和说明问题:

Mandatory Integrity Control,并为 更深入的解释阅读Windows Vista Integrity Mechanism Technical Reference。注意 系统驱动器有一个高完整性标签,通过根目录中的文件继承 。您可以使用 icacls在根目录 中的文件上将DACL和完整性级别设置为 ,而无需修改目录本身。

实际上,这意味着icacls C:\somefile.txt /setintegritylevel M会伎俩。