Articles of acl

使用域组进行ACL C#

我有四个组在我的活动目录中: 只读 用户 经理 伙伴 而且,我有一个Windows Server(2012),其中包含一些文件夹: 行政 上市 受限 规划 Ressources 我如何使用这些AD组在我的C#应用​​程序中应用此服务器上的访问规则?

ACL上的Windows共享

我正在创build一个应用程序,在Windows共享上创build目录。 我用这个代码对它应用ACL: ds.AddAccessRule(new FileSystemAccessRule(managersSID, FileSystemRights.Traverse | FileSystemRights.Read | FileSystemRights.ListDirectory | FileSystemRights.ReadAttributes | FileSystemRights.ReadPermissions, AccessControlType.Allow)); 所有的ACL似乎应用(我可以看到在文件夹的安全选项卡),但是当我尝试点击文件夹我有一个Windows错误“您没有权限打开此文件夹”。 managersSID是我所在的Mangers组的SID。 我想申请只读访问这个文件夹,我使用的好标志? 也许我不明白遗产的所有微妙之处?

在Windows中添加冗余安全规则是否有害? (ACL)

我有.NET代码,每次写入时都会在文件中添加ACL规则。 这是因为如果文件不存在并且代码不知道文件是否存在,则写入操作会创build该文件。 很明显,可以添加各种检查,例如检查现有规则以及文件是否是新的。 但是这个问题是一个普遍的问题:增加冗余规则是否有害? var fileSecurity = File.GetAccessControl(_filePath, AccessControlSections.Access); var everyone = new SecurityIdentifier("S-1-1-0"); fileSecurity.AddAccessRule( new FileSystemAccessRule(everyone, FileSystemRights.FullControl, AccessControlType.Allow)); File.SetAccessControl(m_FilePath, fileSecurity); 我希望Windows ACL足够聪明,可以看到重复的规则,而不是在内部创build额外的logging。

检查用户是否具有Windows中文件的读取权限

如何检查用户是否已经读取了Windows中文件的权限? 有可能通过File.GetAccessControl读取授权规则。 这不会告诉我,如果用户有权通过组成员身份阅读文件…

是否有一个规范的方式来重新sorting对象的DACL后添加一个ACE?

在将ACE添加到文件ACL后,我使用资源pipe理器检查了对象的权限。 它给了我一个关于DACL不是规范格式的错误,并问我是否希望重新sorting。 是否有任何提供DACL规范顺序的文档,所以我不必依靠资源pipe理器来每次重新sorting呢? 或者(更好)一个API函数为我做?

SQL Server Management Studio – 无法附加到我的用户configuration文件中的MDF文件

我将一个ASP.NET MVC模板下载到我的开发计算机上,并将其放到我的用户configuration文件( C:\Users\jdana\projects\gld_ember_mvcspa )中的项目文件夹中。 一个.MDF和.LDF文件出现在模板中。 他们位于这里: C:\Users\jdana\projects\gld_ember_mvcspa\App_Data 对于我来说,我无法让SQL Server Management Studio读取或附加到我的用户configuration文件中的任何.MDF文件(我正在Windows 7机器上运行SQL Server 2014 Standard) 这是我到目前为止所尝试的。 当连接一个数据库看起来像我的问题的死亡匹配时 ,以下访问被拒绝 。 我已经给我的本地login帐户显式完全权限的项目文件夹和所有子文件夹(确保注销/login之后)。 我给了我的本地login帐户所有权的项目文件夹和所有子文件夹(确保注销/后login)。 我检查与MSSSQLSERVER Windows服务关联的login,它是NT Service\MSSQLSERVER 。 我给这个login完全权限的项目文件夹(确保登出/login后)。 最后,我用右键单击“以pipe理员身份运行”启动SQL Server Management Studio。 没有一个工作。 我的用户configuration文件文件夹仍然无法访问SQL Server Management Studio。

写入文件没有读取权限

我试图在C#中的本地Windows帐户上实现Bell-La Padula模型,在此模型中,较低安全级别的用户可以写入属于较高安全级别的文件,而不必读取它! 我已经添加了像这样的文件的权限 file.txt:读取[拒绝] – 写入[允许] 现在我正在努力允许用户将文本追加到file.txt而不读取它。 我用这个: using (FileStream aFile = new FileStream(filename, FileMode.Append, FileAccess.Write)) using (StreamWriter sw = new StreamWriter(aFile)) { sw.WriteLine(DateTime.Now.ToString() + " Modified BY :" + username + Environment.NewLine); sw.WriteLine(textBox1.Text); sw.WriteLine("———- END User Edition ————–"); } 它运行时,我从pipe理员帐户运行该程序,但是当我试图从Guset帐户运行它引发exception:你不能访问这个文件! 我已经尝试在开始编辑之前添加读取权限,并在完成后将其删除,但文件权限从未更改过。 有没有我可以实现的编程方式,或者允许我的应用程序在客户帐户中运行时生效?

具有IdentityReference:BUILTIN \ Users的文件夹的列表

我想有一个PowerShell命令,将提供具有IdentityReference : BUILTIN\Users的文件夹的列表 我试过这个命令: Get-Acl -Path "\\nasaunr\DEPARTMENTS\*" | Select -ExpandProperty Access 但它只提供了BUILTIN\Users ,而不是文件夹名称 。 我需要这个文件夹内的所有文件夹\\nasaunr\DEPARTMENTS\*

MSDN示例中SetEntriesInAcl错误87的原因

我不知道很多关于Windows的安全描述符。 为了学习,我正密切关注他们在这里发布的例子。 我的代码在调用SetEntriesInAcl时保持相同的错误(87-无效的参数)。 我无法弄清楚,所以我复制并粘贴了样本中的确切代码并运行。 我结束了同样的错误; 有这方面经验的人有什么想法是怎么回事? 这里是与例子相同的代码: #pragma comment(lib, "advapi32.lib") #include <windows.h> #include <stdio.h> #include <aclapi.h> #include <tchar.h> void main() { DWORD dwRes, dwDisposition; PSID pEveryoneSID = NULL, pAdminSID = NULL; PACL pACL = NULL; PSECURITY_DESCRIPTOR pSD = NULL; EXPLICIT_ACCESS ea[2]; SID_IDENTIFIER_AUTHORITY SIDAuthWorld = SECURITY_WORLD_SID_AUTHORITY; SID_IDENTIFIER_AUTHORITY SIDAuthNT = SECURITY_NT_AUTHORITY; SECURITY_ATTRIBUTES sa; LONG lRes; HKEY hkSub […]

为什么FileSystemInfo不声明GetAccessControl方法?

我主要对这背后的devise决定感兴趣。 背景资料: FileSystemInfo是FileInfo和DirectoryInfo的基类。 这两个类都实现了GetAccessControl() ,分别返回一个FileSecurity或DirectorySecurity对象。 FileSecurity和DirectorySecurity都是从FileSystemSecurity派生而来的 – 同样是唯一的类。 FileSecurity和DirectorySecurity都没有声明自己的方法或属性 – 除了构造函数。 但是, FileSystemInfo还不包含public FileSystemSecurity GetAccessControl()方法。 问题 : 任何人都可以阐明为什么FileSystemInfo不包含这种方法? 示例代码 public static void GrantFullControlToBuiltinUsers(this FileSystemInfo fileSystemInfo) { FileSystemSecurity acFile; if(fileSystemInfo is DirectoryInfo) acFile = ((DirectoryInfo) fileSystemInfo).GetAccessControl(); else acFile = ((FileInfo)fileSystemInfo).GetAccessControl(); acFile.AddAccessRule( new FileSystemAccessRule(GetAccountNameBuiltinUsers(), FileSystemRights.FullControl, AccessControlType.Allow)); if (fileSystemInfo is DirectoryInfo) ((DirectoryInfo)fileSystemInfo).SetAccessControl((DirectorySecurity)acFile); else ((FileInfo)fileSystemInfo).SetAccessControl((FileSecurity)acFile); } 这些代码与所有(不必要的)代码都非常漂亮,我想知道为什么图书馆是这样devise的。