首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件和目录的默认访问权限

文件和目录的默认访问权限
EN

Stack Overflow用户
提问于 2010-09-08 05:07:47
回答 2查看 1.1K关注 0票数 0

我有一个应用程序是安装在Vista的PC上的用户提升的用户权限(和管理员通过UAC提升提示)。

安装程序将一些文件写入%APPDATA%文件夹中的文件夹。

当用户(没有提升的用户权限)运行应用程序时,无法访问共享%APPDATA% (Vista中的c:\ProgramData)中的文件(和创建的文件夹)。

这些文件由第三方组件编写。如果在没有提升用户权限的情况下使用组件,则文件可访问(和可写)。

我曾尝试更改文件的访问权限,但没有成功。

有没有办法让文件的默认访问权限对每个人都是完全控制的?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-15 06:05:26

我使用here中描述的方法创建了一个子文件夹i c:\ProgramData,从而解决了这个问题

代码语言:javascript
复制
bool modified;
DirectoryInfo directoryInfo = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData), "MyFolder");
DirectorySecurity directorySecurity = directoryInfo.GetAccessControl();
FileSystemAccessRule rule = new FileSystemAccessRule(
    securityIdentifier,
    FileSystemRights.Write |
    FileSystemRights.ReadAndExecute |
    FileSystemRights.Modify,
    InheritanceFlags.ContainerInherit |
    InheritanceFlags.ObjectInherit,
    PropagationFlags.InheritOnly,
    AccessControlType.Allow);
directorySecurity.ModifyAccessRule(AccessControlModification.Add, rule, out modified);
directoryInfo.SetAccessControl(directorySecurity);

规则由子文件夹和文件继承。在"MyFolder“中创建的所有文件和文件夹对Users组都是可写的。

票数 2
EN

Stack Overflow用户

发布于 2010-09-08 07:06:29

首先,您确定您的安装程序为所有用户而不是一个用户设置了AppData吗?如果安装程序在某个用户的AppData文件夹下生成文件夹,那么通常您在系统上拥有多少权限都无关紧要,除非您是该用户,否则无法访问该文件夹。

其次,听起来您的安装程序是代表执行安装的用户写入文件夹和/或文件,该用户将是管理员,因此需要更高的权限。有一种方法可以获取和更改文件夹和/或文件的ACL权限。也许你正在尝试的代码片段可能会对你有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3662777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档