Articles of acl

如何检查Linux中的ACL是否存在UID?

我需要编写一个程序,其中一部分涉及检查程序使用的文件的ACL文件中是否存在执行该程序的用户的用户名。 也就是说,这个程序写入文件,只允许在ACL中input用户名和密码的用户这样做。 程序如何检查这个? 我知道我需要使用getresid函数来获取正在执行的进程的RUID,但是如何对存储在ACL中的所有值进行检查? 请帮帮我!

我的C#应用​​程序如何testing用户是否具有“读取”访问networking共享的权限?

我在一个经常遇到访问networking共享的“问题”的粗客户端应用程序上工作。 在使用服务器执行任何IO之前,我的应用程序testing共享(通常是\\ server \ share $forms)是否存在。 这对于检测客户端已经失去与服务器的连接的场景来说工作正常,但仍然存在隐藏份额存在的奇怪场景,但是用户没有从共享内部读取的权限。 有人可以共享(不是双关语意思)所需的C#代码来testing当前用户是否可以读取共享文件? 我应该查询共享的ACL还是共享内的文件? 如果份额是空的呢? 如果用户是混合环境中的本地非pipe理员(Novellnetworking上没有域的XP Pro工作站,Windows 2003服务器),该怎么办?

为.Net下的低完整性进程添加写访问权限

我正在创build一个FileSecurity文件创build应该有一个写访问低廉的完整性过程。 FileSecurity fileAcl = new FileSecurity(); // add everyone IdentityReference sid = new SecurityIdentifier(WellKnownSidType.WorldSid, null); FileSystemAccessRule rule = new FileSystemAccessRule(sid, FileSystemRights.FullControl, AccessControlType.Allow); fileAcl.AddAccessRule(rule); // add restricted sid = new SecurityIdentifier(WellKnownSidType.RestrictedCodeSid, null); rule = new FileSystemAccessRule(sid, FileSystemRights.FullControl, AccessControlType.Allow); fileAcl.AddAccessRule(rule); // add low integrity level rights // ??? 如果有人知道如何在不调用C API的情况下做到这一点,我将不胜感激,否则我将不得不重新使用它。 提前致谢

Windows NT ACL如何工作?

Windows NT(特别是XP,Vista和Server 2008)ACL(访问控制列表)如何工作? 他们的基本理念是什么?就是说,在概念上存储在ACL中的内容,以及如何根据存储的信息来评估访问权限? 什么是基本的,命令行,否则,pipe理它们的公用事业? 也许还包括指向相关文档或教程的链接! PS。 也许我应该在Serverfault中问这个问题?

C#从“高级安全设置”获取“应用于”信息的目录

我正在写一个应用程序,用于search文件夹的权限,并返回权限(例如完全控制,读取),访问控制types(如允许,拒绝)和应用信息(如本文件夹,子文件夹和文件) 。 我能够使用DirectoryInfo的GetAccessControl(DirectorySecurity)方法获取大部分这些信息。 但是,我无法准确获取目录的“应用到”信息。 经过大量的研究,我遇到了这个StackOverflow问题如何更改文件夹审计选项下的“适用于”字段以编程方式(.NET) ,这导致我这个全面的页面http://msmvps.com/blogs/p3net/pages/access- control-in-net.aspx,但是使用两者都指定的规则,我没有像在Windows资源pipe理器中那样获得相同的“应用到”权限。 (来自http://msmvps.com/blogs/p3net/pages/access-control-in-net.aspx的表格) 这是我用来尝试和转换InheritanceFlags和PropogationFlags的组合的代码: private ApplyToType GetApplyToType(InheritanceFlags inheritanceFlags, PropagationFlags propagationFlags) { if (propagationFlags == PropagationFlags.None && inheritanceFlags == InheritanceFlags.None) return ApplyToType.ThisFolderOnly; if (propagationFlags == PropagationFlags.None && inheritanceFlags == InheritanceFlags.ContainerInherit) return ApplyToType.ThisFolderAndSubfolders; if (propagationFlags == PropagationFlags.None && inheritanceFlags == InheritanceFlags.ObjectInherit) return ApplyToType.ThisFolderAndFiles; if (propagationFlags == PropagationFlags.None && inheritanceFlags == (InheritanceFlags.ContainerInherit | […]

目录上的Windows权限:Mercurial – hg merge – “abort:access is denied”

背景:这是在Windows 2008 Server上运行的。 https://www.mercurial-scm.org/wiki/Workflows#Feature_separation_through_named_branches 我是一个Mercurial新手,并试图按照上面的build议说,“尽可能经常地将默认合并到您的function” – 我已经这样做了几次以前已经与其他文件。 但是,这个最新的变化是不会合并的。 当我做'汞合并默认'我得到错误“中止:访问被拒绝”。 search后,我看到一些人报告实际上有问题的文件的权限问题。 关于有问题的文件的权限没有什么特别的,至less不是我能看到的。 我是通过培训的Linux人员,而不是Windows人员,所以从根本上来说,我不太了解Windows文件的权限。 Cygwin声称有问题的文件是644(即,我可以写入文件),这与以前由hg合并过程成功触及的所有其他文件具有相同的权限集。 我看了一下DOS的“attrib”命令,它并没有在所讨论的文件旁边显示“只读”标志。 如果这不是Mercurial问题,而是Windows权限问题,我很乐意进一步修改标签。 我假设这个“中止:访问被拒绝”错误是指需要合并的变更集中的文件,而不是.hg /文件之一,但这是一个非常神秘的错误信息 – 它doesn'不要说哪个文件存在访问问题(并且更改集中只有一个文件被更改 – 我特意试图在此testing中非常简单)。 更新: 做了一个'hg rollback',并以相同的顺序尝试了同样的命令testing,只保留了一个完全不同的文件(lib / blort.html而不是blah / foo.html)的文件。 “hg merge”工作得很好。 所以对于我开始使用的特定文件(foo.html)或者它的父目录的权限,可能会有一些特别的狡猾。 另一个编辑 肯定有关于父目录的东西,因为我有同样的问题/目录中的另一个文件,但问题不会在目录结构中的其他地方,只在这一个目录。 刚刚检查了lib / vs blah /的权限,他们在Cygwin中看起来都是一样的,但这只是Windows ACL的模糊近似。 通过右键单击每个目录并检查“属性”安全选项卡来检查这些目录时,它们在两个目录中看起来都是一样的,但我认为问题的症结在于我并不十分注意ACL。 有没有一些DOS命令行工具,像'attrib'只是更强大的,就像在linux中的'ls',会给我更多的信息比我在'属性'中的混淆混淆勾号? 希望最后的编辑 如何区分Windows权限 “iCacls”似乎是工作的正确工具,似乎已经解决了这个问题,但是我想在接受/closures之前复制这个问题。 概要 如果有疑问,请在您的Mercurial命令中使用–debug 。 现在有一点点了,但是感谢@懒惰的獾指出了它。 您可以使用像icacls path /grant domain\user:(OI)(CI)F这样的命令来修复您的Server 2008权限icacls path /grant […]

C# – Windows ACL – 应用inheritance的权限

我一直在编程上给文件夹/registry项分配权限时遇到问题。 我设法使用下面的代码分配inheritance权限: FileSystemAccessRule rule = new FileSystemAccessRule(LOGON_USER_NAME, FileSystemRights.FullControl, InheritanceFlags.ContainerInherit | InheritanceFlags.ObjectInherit, PropagationFlags.InheritOnly, AccessControlType.Allow); DirectorySecurity security = new DirectorySecurity(); security.SetAccessRule(rule); Directory.CreateDirectory(dir); Directory.SetAccessControl(dir, security); 这正确地设置我作为pipe理员创build的所有子文件夹上的文件权限。 但是,它不会在dir文件夹本身上设置权限。 我曾经为了inheritance和传播而进行了一些排列,但没有任何的喜悦。 例如,我有: dir = %programfiles%\Test 如果我在testing( %programfiles%\Test\SubFolder )中创build了一个文件夹,我为我的用户分配了完整的权限,但是我没有%programfiles%\Test完全权限。 这真的很烦人,因为我想给我的用户充分的权限做任何与testing目录以及。 我有与registry权限类似的问题,但我相信,如果我能解决一个,我可以解决这两个突出的问题。 有谁知道如何解决这个问题? 问候 三

由于PathTooLongException,使用PowerShell和Robocopy获取ACL信息

我试图使用PowerShell获得一些networking文件夹的所有权限的列表。 不幸的是,我遇到了可怕的PathTooLongException,所以我试图使用Robocopy作为解决方法。 不过,我是一个PowerShell的新手,所以希望有一点帮助。 我提出的最简单的命令是 Get-Childitem "S:\StartingDir" -recurse | Get-Acl | Select-Object path,accestostring | Export-Csv "C:\export.csv" 这工作,做我想要的,除了我得到的例外。 如何将Robocopy插入到此语句中以绕过exception? 有什么想法吗?

如何使用PowerShell设置文件夹的权限

我正在尝试编写一个脚本,在所有文件服务器上添加“CreatorOwner”权限以在configuration文件$文件夹中; 即将“CreatorOwner”权限添加到“\ FileServer \ Profile $” 任何人都可以告诉我最新的命令和语法吗? 请问有没有问题。

如何更改Windows中的文件ACL,如果我只知道SID?

我想更改一个文件的ACL并将“完全权限”设置为特殊用户。 我知道cacls命令cacls . /e /t /p Everyone:f cacls . /e /t /p Everyone:f 但是这只适用于操作系统是英文的。 对于德国的系统,它必须是cacls . /e /t /p Jeder:f cacls . /e /t /p Jeder:f 。 我知道用户“大家”(S-1-1-0) 的众所周知的SID ,但似乎我不能用cacls来使用它们。 我试过cacls . /e /t /p S-1-1-0:f cacls . /e /t /p S-1-1-0:f 。 有没有办法使用Windows命令行工具进行这项工作? 我不允许将软件或其他命令行工具与我的软件捆绑在一起。 解决scheme必须从Java进程调用,但这不应该是一个问题。