所以我想防止自己将某些文件写入文件夹。我总是使用备份文件夹,在其中进行比较,将数据传输到目标项目。问题是有时我会错误地编辑备份文件。有什么方法可以拒绝我自己的编辑/写入权限吗?我不想文件被重命名/删除。设置文件夹只读标志绝对不会有任何作用 - 之后我可以再次毫无问题地编辑/删除文件(至少在 Win 8.1 中)。这对我来说非常重要 - 因为现在我已经以这种方式破坏了许多备份文件,这给我带来了很多麻烦。有什么想法吗?
我正在运行最新版本的 Windows 8.1 x64。
答案1
原始答案:
如果是 NTFS,您可以使用文件系统安全功能。
编辑文件夹的“安全”选项卡,我假设您之前没有更改它们:删除“经过身份验证的用户”,它可能会警告您必须先禁用继承,请在“高级”选项中执行此操作。
确保 UAC 已开启。
现在,当您尝试编辑/添加/删除该文件夹内的任何内容时,UAC 都会发出警告,您甚至可以将其设置为更高级别,以便每次都必须输入密码。
编辑: 上述方法是万无一失的简易指南,仅适用于 Windows Vista+,并且需要管理员权限和不受控制的文件/文件夹安全设置才能开始。
但是,如果您了解背后的原理,您可以在几乎任何具有 NTFS 的 Windows 版本上、在任何用户帐户上执行此操作。
假设您的正常工作帐户是 A,而另一个“安全”帐户是 B,您可以将文件夹所有者设置为 B,并赋予其完全权限(不要忘记选中“用从该对象继承的权限替换所有子对象权限”),然后将帐户 A 添加为只读,现在您只能使用帐户 B 对其进行写入,同时仍可在日常帐户 A 中读取/使用它。
如果没有管理员权限,您就无法从访问列表中删除管理员,也无法更改所有者(如果是管理员)。但该方法无论如何都应该有效,而且如果您创建了文件夹,所有者应该默认为您。
PS.以上都是我的经验之谈,如果有更好的方法欢迎指教。
答案2
这是一个包含文件的文件夹。每次我做出更改时,我都会“另存为”并增加版本号。但是,有时我会不小心点击“保存”并覆盖我的文件 –史蒂文·瓦斯切拉罗
如何使文件夹中的文件只读可访问
您可以使用加拿大临床神经外科学会并明确否认写属性对特定文件夹内所有文件的权限,并防止您自己(或任何安全组)覆盖或修改这些文件,但仍允许读取权限来打开它们。
下面是一个带有环境%userdomain%\%username%
变量的批处理脚本,用于定义当前域(或本地计算机名称)和登录到您执行批处理脚本的计算机上的用户名(即<domain>\<username>
)以拒绝访问该帐户;如果需要,可以轻松地用任何有效的域安全组名称替换它(即<domain>\<securitygroupname>
)。
批处理脚本
将变量的值替换Folder=
为您需要使现有文件在只读模式下可访问的位置的完整明确文件夹路径(或 UNC 路径)。
@ECHO ON
SET Folder=C:\Users\User\Desktop\Test
SET Security=%userdomain%\%username%
ICACLS "%Folder%\*" /deny "%Security%":(OI)(WA)
EXIT
如果你查看文件 ACL 权限,你会看到写属性现在明确拒绝适用于此文件夹和文件。
这是一个包含 V1、V2 等测试文档的文件夹,已经针对这些文档运行了批处理脚本。
如果您尝试保存该文件,则会弹出另存为对话框,如果您尝试用相同的文件名覆盖已存在的文件,您将收到访问被拒绝错误消息,因为该文件对于该帐户而言是只读的。
您只需另存为,为文件赋予不同的名称,但保存到同一文件夹中,将所有文件锁定为只读访问,然后您可以将数字增加一或其他数字。
此文件夹中任何新保存的文件现在将具有写属性拒绝,因此一旦将具有新文件名的文件保存到此文件夹,这些权限限制将立即生效。
进一步阅读和资源
-
/deny Sid:perm explicitly denies the specified user access rights. An explicit deny ACE is added for the stated permissions and the same permissions in any explicit grant are removed. WA - write attributes inheritance rights may precede either form and are applied only to directories: (OI) - object inherit
答案3
Romeo 是正确的,您可以通过属性将您的个人文件设为只读,但您将无法保护它免遭删除。
进一步的建议是,如果您想快速将多个文件更改为只读。
打开命令提示符并输入attrib +r [path]
利用通配符的命令*
答案4
右键单击文件夹,属性,在属性下,设置只读,应用。
这将使此文件夹(以及您选择的子文件夹)中的所有文件仅供读取。当您尝试保存 R/O 文件时,软件将为您提供另存为不同名称