为什么即使我在正确的组内也无法为 AFS 设置 ACL?

为什么即使我在正确的组内也无法为 AFS 设置 ACL?

我在 AFS 系统上失去了对某个目录的控制权。根据系统管理员的说法,我的 adminin 子组 (dsekt:admin) 拥有rlidwka该目录。我是该组的成员(我可以列出该组的成员并在那里看到我的昵称),但我无法设置其 ACL。

要点:

$>pts membership dsekt:admin     
Members of dsekt:admin (id: -6813) are:
  /.../
  taran

我的 klist 如下:

$>klist
Credentials cache: FILE:/tmp/krb5cc_56782
        Principal: [email protected]

dsekt:admin 和目录都在 NADA.KTH.SE 节点上。

答案1

使用 AFS,访问控制列表 (ACL) 用于设置目录(而非文件)的访问权限。(ACL 参考:http://www.angelfire.com/hi/plutonic/afs-faq.html#sub2.04

首先,显示目录的 ACL:fs la $directory

例如:

tweety@toontown $ fs listacl .
Access list for . is
Normal rights:
  fac:coords rlidwka
  system:anyuser rl

其次,查看 ACL 并确认您的 AFS-ID 位于 ACL 中或属于 ACL 中任何组的成员。您可以使用以下命令检查组成员身份:pts mem $afs_group_name

第三,检查 AFS 访问权限(参考:http://www.angelfire.com/hi/plutonic/afs-faq.html#sub2.04) 并确认您拥有所需的访问权限。

要管理 ACL,您只需要“a”访问权限。然而,在实践中,拥有所有权限更为容易:“rwlidka”。

第四,确认您已通过 AFS 单元的身份验证并拥有有效令牌:

例如:

elmer@toontown $ tokens
Tokens held by the Cache Manager:

User's (AFS ID 9997) tokens for [email protected] [Expires Sep 15 06:50]
User's (AFS ID 5391) tokens for [email protected] [Expires Sep 15 06:48]
   --End of list--

在 AFS 中可以对多个单元进行身份验证。

答案2

fs getcalleraccess命令可用于查看 AFS 认为您对目录拥有的访问权限。只需运行:

$ fs getcalleraccess
Callers access to . is rlidwka

其他答案尚未涵盖的一种可能性是,您可能被列在相关目录的“负”ACL 中。负 ACL 并不常见,但它们是在正常正 ACL“之后”应用的,因此负 ACL 胜过正 ACL。

例如:

$ fs la
Access list for . is
Normal rights:
  system:administrators rlidwka
  system:anyuser rl
  foo1 rlidwka
Negative rights:
  foo1 rlidwka

该示例中的用户“foo1”根本无法访问该目录,即使他们被列为具有正“rlidwka”权限。要删除负 ACL 条目:

$ fs sa . foo1 none -negative
$ fs la
Access list for . is
Normal rights:
  system:administrators rlidwka
  system:anyuser rl
  foo1 rlidwka

答案3

我不太熟悉 Andrew,但一般来说,一些权限存储在父目录中,您可能也需要那里的权限。

相关内容