我在 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,但一般来说,一些权限存储在父目录中,您可能也需要那里的权限。