有没有办法让任何文件被复制到任何用户都无法执行的文件夹中?
该文件夹可写,但是里面的任何内容都不能直接执行。
答案1
是的,您可以使用高级权限从文件夹删除执行权限。
右键单击文件夹名称并选择“属性”。
单击“安全”选项卡。
单击“高级”按钮。
单击“更改权限...”按钮。
取消选中“包括从该对象的父级继承的权限”
会出现一个窗口。单击“添加”以保留现有权限。您将在后续步骤中编辑它们。
添加或选择要限制执行文件的用户或组。如果选择现有组,请单击“编辑...”按钮。
会出现以下窗口。取消选中我用红色圈出的“遍历文件夹/执行文件”的允许复选框。
根据有关文件和文件夹权限的 Microsoft Technet 条目中,“遍历文件夹/执行文件”权限的作用如下:
对于文件夹:遍历文件夹允许或拒绝在文件夹中移动以访问其他文件或文件夹,即使用户没有遍历文件夹的权限。(仅适用于文件夹。)仅当组或用户未被授予权限时,遍历文件夹才会生效绕过遍历检查组策略管理单元中的用户权限。(默认情况下,Everyone 组被赋予绕过遍历检查用户权限。
对于文件:执行文件允许或拒绝运行程序文件。(仅适用于文件)。
在文件夹上设置遍历文件夹权限不会自动在该文件夹内的所有文件上设置执行文件权限。
答案2
这是使用拒绝权限实际上有用的少数情况之一。添加拒绝权限可能比更改允许权限更方便。
您可以从命令行执行此操作(在 Vista 或更高版本上),如下所示:
icacls c:\path\to\my\folder /deny Everyone:(OI)(IO)(X)
如果您愿意,也可以通过 GUI 执行此操作。您不需要关闭“包括可从此对象的父级继承的权限”,但我建议您选择“仅适用于文件”选项。
答案3
这可以通过仔细设计父目录的权限来实现。具体来说,您不想向任何人授予“执行”(授予 R,而不是 RX),尤其特殊的 CREATOR-OWNER 用户。这将拒绝执行所有操作。
答案4
chmod -x * -R
使文件不可执行,并chmod +x * -R
使其可执行。