2014-08-29 102 views
0

我有一个文件系统目录,我主要在我的常规用户模式(git存储库)访问。偶尔,升级的“根”用户进程将在该目录中的某个位置创建新文件或在某个子目录中创建一个文件。这使得我无法再自己更改所有文件,并且Git将无法拉取更改(除非我将Git作为提升的root用户运行)。Windows 7文件权限 - 强制目录权限递归到所有当前和将来的文件

我可以在Windows资源管理器每天递归设置的权限,但这个过程需要很长的时间,因为必须有成百上千的文件中有对重置权限。

有Windows中的任何办法让它这样一个目录将永远是可写的所有用户?

回答

0

您无法强制其他用户创建的文件和目录具有某些权限。他们拥有他们创建的文件和目录,作为拥有者,他们可以随时将权限设置为任何他们想要的。但是,您可以执行的操作是确保在创建文件和目录时使用的默认权限允许您访问文件和目录。 >安全 - - >高级

查看高级安全为您的问题的一个目录中的资源管理器中右击它并选择属性设置。查找可以访问该目录的条目(可能是Hostname \ Users或Hostname \ Yourname),并确保在“适用于”列下面显示“此文件夹,子文件夹和文件”。如果它没有这样说,那么这个权限不会被目录中创建的任何子目录或文件继承。

为了解决这个问题去你的git仓库(或者,如果你已经改变了这上面一个目录的权限可能更高),并查看它的顶级目录是在资源管理器的高级安全设置。按更改权限按钮并选择允许您访问该目录的条目,然后按编辑。在出现的对话框中,将“适用于”下拉框更改为“此文件夹,子文件夹和文件”。确保“仅将这些权限应用于此容器中的对象和/或容器”未选中,然后单击确定。您可能希望对其他任何不可继承的权限条目重复此操作。在“高级设置”对话框中选中“用来自此对象的可继承权限替换所有子对象权限”,然后按确定。这应该使得任何人在该目录下创建的任何内容默认情况下都拥有您设置为可继承的权限。

这不会产生他们所想要的任何权限的文件阻止问题的“根”的过程(通常称为管理员或系统进程取决于实际用户),但通常在创建文件时大多数进程将使用默认的权限。如果您在进程中确实存在明确设置权限的问题,并且您无法更改其行为,那么您可以做的事情不多。您可以将文件移动到FAT32或exFAT格式的分区。由于这些文件系统不支持访问控制列表,您永远不会被拒绝读取文件。它们确实支持只读属性,因此如果进程明确设置MS-DOS样式的只读属性,仍然可以拒绝写入权限。

+0

我按照你的指示,但仍然有问题的党“根”进程设置自己的权限在一些文件。我最终重构了“根”进程,以便它们能够以常规用户模式运行,但仍能够启动和停止系统服务。我在这里找到的信息很有用:[link](https://stackoverflow.com/questions/4436558/start-stop-a-windows-service-from-a-non-administrator-user-account/15781818#15781818) – 11101101b 2014-09-03 19:51:41