问题标签 [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.

0 投票
2 回答
11721 浏览

c# - 我的 C# 应用程序如何测试用户是否具有对网络共享的“读取”访问权限?

我在一个胖客户端应用程序上工作,该应用程序经常在访问网络共享时遇到“问题”。在对服务器进行任何 IO 之前,我的应用程序会测试共享(通常形式为 \\server\share$)是否存在。这适用于检测客户端与服务器失去连接的情况,但仍然存在隐藏共享存在但用户无权从共享内读取的那些奇怪情况。有人可以分享(不是双关语)测试当前用户是否可以读取共享文件所需的 C# 代码吗?我应该查询共享的 ACL 还是共享中的文件?如果共享为空怎么办?如果用户是混合环境中的本地非管理员(XP Pro 工作站、Novell 网络上没有域的 Windows 2003 服务器)怎么办?

0 投票
4 回答
2868 浏览

python - 使用 Python 集合类型实现 ACL

目前我有这样的表:Pages, Groups, GroupPage, Users, UserGroup. 使用腌制集,我只需 3 个表即可实现相同的功能:Pages, Groups, Users.

set似乎是实现 ACL 的自然选择,因为组和权限相关的操作可以用集合非常自然地表达。如果我将允许/拒绝列表存储为腌制集,它可以消除一些用于多对多关系的中间表,并允许在没有很多数据库操作的情况下进行权限编辑。

如果人类可读性很重要,我总是可以使用 json 而不是 cPickle 进行序列化,并set在 Python 中操作权限列表时使用。使用 SQL 直接编辑权限的可能性很小。那么这是一个好的设计理念吗?

我们使用 SQLAlchemy 作为 ORM,所以它很可能用PickleTypecolumn 来实现。我不打算存储整个腌制的“资源”记录集,只存储set由“资源”主键​​值组成的对象。

0 投票
1 回答
2969 浏览

linux - POSIX ACL 和应用于目录的“粘性”位

POSIX.1e打算为 POSIX 定义 ACL(访问控制列表)机制(以及其他与安全相关的问题),但这些提案从未转换为正式标准。尽管如此,至少在所有主要的 Unix 变体( LinuxBSDMacOS X (ACL)HP-UXAIX (p107ff)、Solaris )中都支持 ACL(不一定是 POSIX.1e ACL )。我还没有发现讨论的一个细节是文件上的 ACL 如何与目录上的粘性位交互。

对于普通目录(没有 ACL 来混淆问题),可以将权限设置为例如 1777(例如,在 /tmp 上找到)。

粘性位由权限最后位置的“t”表示。这意味着如果用户可以写入文件,则用户只能从目录中删除文件。这是有道理的;如果用户可以写入文件,则文件的内容可以被破坏。

我的问题是:

  • 假设 /tmp 目录的一般(非 ACL)权限如上所示。
  • 进一步假设偏执的用户“trembler”将文件的非 ACL 权限设置/tmp/secret为 600(用户“trembler”,组“worried”)。
  • 假设 'trembler' 通过专门引用 'blase' 的 ACL 将 /tmp/secret 上的 'rw' 访问权限授予另一个用户,'blase'。
  • 可以'blase'删除文件/tmp/secret

如果考虑 ACL,答案应该是“是”;如果忽略 ACL,答案将是“否”。假设在相关文件系统上启用了 ACL,所有 Unix 变体的行为是否一致?

0 投票
5 回答
2362 浏览

java - 任何人都可以推荐现成的 ACL Java 库吗?

我没有运气找到一个。

0 投票
3 回答
1024 浏览

php - 如何解决 CakePHP 的 ACL 教程中的“无效节点”错误?

我使用CakePHP 文档中描述的方法创建了一个应用程序,但是在我尝试登录后出现了一个错误,上面写着,

我做了与网站上提到的完全相同的操作,但是登录后我收到了这个错误消息。请帮我纠正这个问题。

0 投票
1 回答
7391 浏览

windows - Windows 在哪里存储 ACL,ACL 是否将文件从一台机器转移到另一台机器?

我们的应用程序使用的组件需要目录中的许可证文件和我们的可执行文件,这恰好是一个 .NET WinForms 应用程序,尽管我认为这对这个问题无关紧要。当安装在某些 XP Pro 机器上时(目前只有几百台机器中的三台),该组件会引发许可证异常。所以我重新生成了许可证文件并将其发送给组件供应商 (EMC Captiva),供应商声称该错误是由于“用户”组对该文件没有读取权限。遇到错误的用户恰好是本地管理员,但除此之外,我仍然对更一般的问题感到好奇。

所以我的问题是,ACL 是否存储在文件中,以便它们在文件的整个生命周期中都跟随文件,特别是当许可证文件是在我的开发机器(机器 1)上生成、存储在 Subversion(机器 2)中、从源代码控制中签出时由 TeamCity(机器 3),由 InstallShield(机器 4)打包成安装程序,最后部署到由管理员安装的客户机器(机器 5)?在我的开发机器(机器 1)上生成文件后,如何通过他们的支持站点(机器 2)将其上传到组件供应商,然后支持人员将其下载到他们的机器以供检查(机器 3)?

我不确定这一点(这就是我在这里问它的原因),但我假设每台 Windows 机器都将 ACL 存储在由 NTFS 管理的某个中央目录/列表/表中,而不是存储在文件中。当原始文件的 ACL 从一台机器复制到另一台机器、存储在 Subversion 中、打包到 MSI 等时,会发生什么情况?有人可以指出我可以阅读的一些好的参考资料吗?

0 投票
2 回答
670 浏览

php - ACL 中应该包含哪些资源?对象的模型还是对象的实例?

请帮助我为我的 PHP Web 应用程序实现访问控制列表。我专门使用 Zend_ACL。

我希望对哪些特定实体(无论是用户还是组)可以访问哪些资源进行细粒度的、应用程序范围的控制。我希望能够授予对特定资源实例的访问权限,以及对该类型的所有资源的访问权限。例如:

  • 用户 #1 拥有所有帖子的编辑权限
  • 用户 #2 是客座编辑,对帖子 ID #5 具有编辑权限
  • 第 1 组(来宾)对所有内容都具有读取权限
  • 用户属于从来宾继承的用户组。

我的问题是:ACL 是否应该引用资源类型或其中的特定实例?我是否应该像这样使用 ACL 授予用户基本的、资源类型范围的特权:

  • 在帖子上向用户 #1 授予编辑权限
  • 授予用户 #2 只不过是继承
  • 授予组 #1 读取所有资源
  • 实施例外表以跟踪对特定资源的授予和拒绝

或者我应该为我的不同类型资源的所有单个实例创建资源并继续授权横冲直撞以允许所有用户读取所有资源?看起来比较野蛮。

我当前的解决方案是这样的:使用资源继承,创建一个没有类型的最父资源,为每种类型创建一个此根的子资源,然后为每个实例创建每种类型的子资源。这允许我授予一种特定类型并拒绝少数实例,或者拒绝特定类型但授予一个实例(如上面的用户#2)。这很好地统一了我的权限系统,但是我的需求更复杂。很快,资源类型将被嵌套。所以我将不同的模块谁可以是父母或孩子。一个例子:一个站点范围的照片库模块,一个公告模块,下面有另一个更独特的画廊。我不太确定该怎么做才能解决这个问题。我仍然希望能够授予所有画廊,或者只是一个,或者只是下面的一些照片。请记住 Zend_ACL 没有

实现这一点的最佳方法是什么?全部使用 ACL 还是使用每个模块中内置的一些逻辑?

0 投票
1 回答
10543 浏览

python - 使用python检查文件夹/文件ntfs权限

正如问题标题可能暗示的那样,我非常想知道检查给定文件或文件夹的 ntfs 权限的方法(提示:这些是您在“安全”选项卡中看到的那些)。基本上,我需要的是获取文件或目录的路径(在本地机器上,或者最好在远程机器上的共享上)并获取用户/组列表以及此文件/文件夹的相应权限. 最终,应用程序将遍历目录树,读取每个对象的权限并相应地处理它们。

现在,我可以想到多种方法来做到这一点:

  • 解析 cacls.exe 输出 - 很容易完成,但是,除非我遗漏了什么,否则 cacls.exe 仅以 R|W|C|F(读/写/更改/完整)的形式提供权限,这是不够的(我需要获得“列出文件夹内容”等权限,也需要扩展权限)
  • xcacls.exe 或 xcacls.vbs 输出——是的,它们给了我所需的所有权限,但它们的工作速度非常慢,xcacls.vbs 大约需要一秒钟才能获得本地系统文件的权限。这样的速度是不能接受的
  • win32security(它围绕着winapi,对吗?)——我确信它可以像这样处理,但我宁愿不重新发明轮子

还有什么我在这里想念的吗?

0 投票
5 回答
15147 浏览

windows - 在win7中删除旧的PostgreSQL数据目录

我无法在 Windows 7 中删除我的旧数据目录。我已经卸载了 PostgreSQL,但仍然有系统服务用户帐户“postgres”,他是唯一一个对该文件夹具有访问权限的用户。

可能的解决方案是开发一个服务,以“postgres”用户身份运行,删除文件夹,但必须有更简单的方法吗?

0 投票
1 回答
163 浏览

security - 网格框架中的网格安全

最近,我开始尝试轻量级网格框架(Hazelcast、Gigaspaces、Infinispan)。

然而,令我惊讶的是,我尝试过的所有免费框架都没有内置任何 ACL 或基于角色的安全功能(Gigaspaces 确实有一些措施)。

通常使用什么方法来弥补这一点?我是否应该只使用网格在受信任的服务器端应用程序之间共享数据,并使用传统的 Java EE 堆栈(即传统的 DAO 层)来访问来自客户端或不受信任的服务器应用程序的数据?

是否有任何网格框架提供 ACL 功能以访问网格中的数据(我对一些特别的东西很满意,尽管遵守 Java EE 角色概念会很好)?