Articles of acl

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

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

如何在.net中为Windows服务设置ACL?

我有一个服务,我需要能够启动和停止一个button。 我在一个单独的程序中使用一个ServiceController,当我以pipe理员身份运行这个单独的程序时,一切都按预期工作。 不过,我需要能够像任何人一样控制这项服务。 我如何设置我的服务的权限,以便每个人都可以完全控制它? 这需要以编程方式作为服务的一部分或安装。 这是一个用vb.net写的本地服务。

从Java读取Windows ACL

从Java程序中,我希望能够列出有权读取给定文件的Windows用户和组。 Java没有内置的读取Windows ACL信息的能力(至less在Java 7之前 ),所以我正在寻找其他解决scheme。 是否有任何第三方库可用于直接访问Windows文件的ACL信息? 如果不这样做,也许运行cacls和捕获,然后处理输出将是一个合理的临时解决scheme – cacls的输出格式是否在任何地方彻底logging,是否可能会改变之间的Windows版本?

我怎样才能得到使用C ++的SYSTEM进程中的活动用户名?

我已经使用了GetUserName()方法,但是它返回的用户名是SYSTEM中的SYSTEM。如何在SYSTEM进程中获得活动的用户名? 这是我的代码: void getComputerUsername(char * username,char * domainname) { HANDLE hp , htoken; char buff[1024]; unsigned long size = 1024; TOKEN_USER *tuser; PSID sid; TCHAR * user = new TCHAR[256]; TCHAR * domain=new TCHAR[256]; SID_NAME_USE snu; hp = htoken = INVALID_HANDLE_VALUE; hp = GetCurrentProcess(); if(OpenProcessToken(hp, TOKEN_QUERY, &htoken)) { if(GetTokenInformation(htoken, TokenUser, (void*)buff, size, &size)) { tuser […]

我的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权限类似的问题,但我相信,如果我能解决一个,我可以解决这两个突出的问题。 有谁知道如何解决这个问题? 问候 三