问题标签 [acl]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - 确定是否继承了 ntfs 权限的可靠方法
我在这里有一个有点模糊的问题。
我需要什么:确定文件/文件夹的权限(或者,严格来说,DACL 的特定 ACE)是否被继承。
我如何尝试解决这个问题:使用 python 的 winapi 绑定(准确地说是 win32security 模块)。这是精简版,它就是这样做的——它只是将文件的路径作为参数,并一一打印出 ACE,指示设置了哪些标志。
很简单——获取一个安全描述符,从中获取一个 DACL,然后遍历 DACL 中的 ACE。这里真正重要的一点是 INHERITED_ACE 访问标志。它应该在 ACE 被继承而不是显式设置时设置。
当您创建文件夹/文件时,其 ACL 会根据父对象(文件夹)的 ACE 填充 ACE,这些 ACE 设置为传播给子对象。但是,除非您对访问列表进行任何更改,否则不会设置 INHERITED_ACE 标志!但是继承的权限在那里并且它们确实有效。
如果您进行任何细微的更改(例如,在访问列表中添加一个条目,应用更改并删除它),标志就会神奇地出现(该行为不会以任何方式改变,但它之前有效,之后有效)!我想要的是找到 INHERITED_ACE 标志的这种行为的来源,并且可能找到另一种可靠的方法来确定 ACE 是否被继承。
如何重现:
- 创建对象(文件或文件夹)
- 检查 Windows 资源管理器中的权限,查看它们是否已从父对象传播(例如,使用 Windows 资源管理器的文件属性对话框的安全选项卡)。
- 例如,使用我正在使用的脚本检查标志(不会在任何 ACE 上设置 INHERITED_ACE)。
- 更改对象的权限(应用更改),甚至将它们更改回来。
- 检查标志(INHERITED_ACE将在那里)
- ..难以置信地摇头(我知道我做到了)
抱歉,这篇文章有点冗长,希望这至少有点意义。
windows - 来自 SetNamedSecurityInfo 的 ERROR_BAD_INHERITANCE_ACL?
ERROR_BAD_INHERITANCE_ACL
SetNamedSecurityInfo 返回的含义是什么?在这种情况下,我将用户添加到目录的 ACL。我已经查看了有问题的目录,在通话之前它的权利似乎是合理的。但通话失败。
有什么想法吗?
这是执行工作的代码片段(当我将其粘贴到此处时,我想知道该NO_MULTIPLE_TRUSTEE
值):
php - 固定装置可以从其他固定装置“复制”项目吗?
在我的 ACL 装置中,我有资源和动作,大多数资源共享共同的动作,如 CRUD,在 Doctrine (yaml) 中有没有办法扩展另一个元素?
这是我当前的 yaml 的简介:
我如何使用新资源扩展 R1,例如,称为“新闻文章”,它将继承 A1 到 A4 + 包括它自己的操作?
php - 给定 3 级用户,如何设置 CakePHP ACL?
我有一个这样的数据库设置(我知道这不是最好的设置,但我无法更改它:-(
基本上有 3 个级别的用户 - 管理员 - 经理 - 员工
几点注意事项: - 每个员工都属于部门 - 如果员工登录代码出现在经理表中,则他们是经理,否则他们是员工 - 如果员工登录代码出现在经理表中并且 SystemAdmin 设置为 1,他们是管理员
我到底该如何为此设置 ACL/Auth?有任何想法吗?
CREATE TABLE tblStaff
(
StaffID
int(11) NOT NULL auto_increment,
dept_id
varchar(5) default NULL,
logon_code
char(10) NOT NULL,
forename
char(50) NOT NULL,
surname
char(50) NOT NULL, PRIMARY KEY ( StaffID
), ) ;
创建表tblManager
(
ManagerID
varchar(15)NOT NULL,
logon_code
varchar(15)NOT NULL,
dept_id
varchar(5)NOT NULL,
SystemAdmin
tinyint(1)无符号默认NULL,PRIMARY KEY(ManagerID
));
CREATE TABLE tblDepartment
(
dept_id
varchar(5) NOT NULL,
sect_id
varchar(50) 默认 NULL,
subsect_id
varchar(50) 默认 NULL,
sect_name
varchar(50) 默认 NULL,
sect_abbr
varchar(50) 默认 NULL,
subsect_name
varchar(50) 默认 NULL, PRIMARY KEY ( dept_id
) ;
security - 如何限制 ClearCase (Windows Server) 中的 VOB 读取访问?
出于合规性原因,我被要求查看如何限制 ClearCase 中某些 VOB 的读取访问(因此这需要是可审计的,等等……)。到目前为止,我已经找到了一个解决方案,我将在这里发布,但我仍然有问题,所以任何帮助将不胜感激。尤其是魔鬼在细节中,我认为。
为了便于论证,假设我们有 3 个 VOB 和 3 个组:
- gA 和 gB 是两个特殊的组,所有其他 CC 用户都在 gC 中,这是默认的 CC 组
- VOB vA,对组 gA 具有读/写访问权限,并且仅限于其他所有人
- VOB vB,是对 gB 组的读/写访问权限,对 gA 组的读访问权限,并且仅限于其他所有人
- VOB vC,对每个人都具有读/写访问权限
未回答的问题:
为 CC 用户设置不同的域组有什么影响?当人们登录时,他们的 clearcase 组由用户变量 CLEARCASE_PRIMARY_GROUP 获取。如果他们来自 gA 并且在 vA 中正常工作,则此变量将设置为 gA,但如果他们需要在 vC 中更改某些内容,我敢打赌,如果他们不这样做,他们在 vC 中的文件/版本的组所有权将保持 gA不要做任何事情。vC 中的对象最终将具有属于 gA、gB、gC 的组。这会是个问题吗?
我什至不确定是否可以在 vB 上正确设置 ACL,而实际上无需创建一个包含 gA 和 gB 人员的新组 gA',对吗?
在我看来,这里的困难不是技术上的,而是在允许某些人访问适当组的过程中,CM 团队应该远离这个(并由安全部门和涉及的开发团队)。有人有这方面的经验吗?
似乎可以使用 ClearCase Regions 来达到相同的效果。那将如何工作?
此致,
托马斯
multithreading - 是否有 API 仅在特定文件夹上设置 NTFS ACL 而不会向下流动权限?
在我的环境中,我有几个项目涉及在多个文件服务器上运行 NTFS ACL 审计报告和各种 ACL 清理活动。我无法在服务器上本地执行这些活动的主要原因有两个:
1)我没有对服务器的本地访问权限,因为它们实际上是由另一家公司拥有和管理的。
2) 它们是运行经过修改的 Linux 操作系统(称为 GuardianOS)的SNAP NAS 服务器,因此即使我可以获得本地访问权限,我也不确定是否可以使用工具来执行我需要的操作。
解决了这个问题,我最终推出了自己的 ACL 审计报告工具,该工具将从指定的顶级路径开始向下递归文件系统,并针对在 ACL 上遇到的所有组/用户生成 HTML 报告以及显示权限的变化,因为它下降了树。在开发这个工具时,我发现网络开销是执行这些操作的最糟糕的部分,通过多线程处理,我可以实现更高的性能。
但是,我仍然坚持寻找一个好的工具来执行 ACL 修改和清理。您的标准开箱即用工具(cacls、xcacls、Explorer)似乎是单线程的,并且在通过网络时会遭受显着的性能损失。我看过滚动我自己的多线程 ACL 设置程序,但我熟悉的唯一 API 是 .NET FileSystemAccessRule 的东西,问题是如果我在文件夹中设置权限,它会自动想要“流动”权限下降。这会导致一个问题,因为我想自己使用多线程来“流动”。
我知道NTFS“允许”继承权限不一致,因为我已经看到它在具有不同继承权限的两个父文件夹之间的同一卷上移动文件夹/文件,并将旧权限保持为“继承”。
问题
1) 有没有办法设置适用于当前文件夹和所有子文件夹的 ACL(您的标准“适用于文件、文件夹和子文件夹”ACL)但不会自动向下流向子对象?基本上,我希望能够告诉 Windows“是的,这个 ACL 应该应用于子对象,但现在,直接在这个对象上设置它”。
为了清楚起见,我知道适用于“仅此文件夹”的 ACL 选项,但随后我失去了继承,这是一项要求,因此该选项对我的用例无效。
2) 任何人都知道以多线程方式执行 ACL 修改的任何好的算法或方法吗?我的直觉是文件系统的任何递归遍历在理论上都应该有效,特别是如果您只是在顶级文件夹上定义一个新的 ACL 并且只想“清理”所有子文件夹。您将在顶层标记新的 ACL,然后递归向下删除任何显式 ACE,然后将继承的权限“向下流动”。
(仅供参考,这个问题与 ServerFault部分重复,因为它实际上既是系统管理员问题又是编程问题。在另一个问题上,我问是否有人知道任何可以通过网络进行快速 ACL 设置的工具。)
version-control - 哪些源代码控制系统具有文件级权限?
我可能会建议从 VSS 迁移,因为它无法在文件级别授予和拒绝权限。问题是什么源代码控制系统允许这样做。
更新 我将 SVN 答案标记为“正确”答案,因为它的反馈最多。但是,没有正确的答案。我将根据您的所有反馈向管理层提出建议。
php - 我应该如何在 ACL 中构建我的资源树?
使用 PHP 和 Zend_ACL,我想创建一个极其灵活的权限系统。我希望能够为某种类型的所有对象以及这些对象的实例分配权限。如果查询对象的特定实例并且它不存在于资源树中,则可以使用“通用”对象的权限集。我的问题是这需要嵌套,我想不出没有多重继承的方法,Zend_ACL 不支持。
一个例子就是这样。一个包含院系、课程和活动的在线学习网站。每个事件属于一门课程,每门课程属于一个教师。我希望能够允许每个教师角色访问所有课程(以及继承的事件),但特定教师希望他们的材料是私有的。因此,我使我的资源树的结构为每个教师都有一个资源节点,并让每个课程都属于来自教师节点的那个教师分支,而不是从为每个课程提供默认权限的通用课程节点分支。使用新结构,我如何应用我的通用课程权限?课程下面的事件也是如此,如果我希望每个事件只有在父课程可读时才可读,但我也想对每个事件应用一组默认权限,
非常欢迎对不同系统提出任何问题或意见或建议。
ruby-on-rails - 何时何地实施 ACL
我已经启动并运行了rails_authorization_plugin模型。
在我的网站上实施权限检查的最佳方式是什么?
当一个对象的实例应该可见时,我有复杂的条件,是否有一种有效的方法将它们链接在一起,这样我就不会因为循环返回的数据以过滤它而获取多组数据并研磨我的数据库?
security - Is there anything "better" than Access Control Lists (ACLs)?
I've spent some time casually mulling over ACLs in my head. I can see the real benefit of ACLs and their flexibility. But I have some serious concerns when it comes to implementing ACLs for a project that could have hundreds of thousands of users , if not millions. All connected someway to hundreds of thousands of resources (such as images, messages, BLOBs).
It seems to me that the overhead in processing and managing the rules applied to millions of resources for hundreds of thousands of users would be obscene.
But then I haven't seen any alternatives. Are there any beyond username, password, user-level?