使用AFS, Active Directory和SSSD搭建用于集成电路设计的分布式存储系统 【十八】创建 AFS 用户
创建 AFS 用户
如果读者已经跟随我们在前文的讨论完成第一台 AFS 服务器的部署,并且已经将用户使用的研发用服务器转化为 AFS 客户端,那么现在就到了添加普通用户的时候。
添加普通用户是管理员的日常工作之一,读者也许会经常使用这一节里的内容。
AFS 普通用户账号的组成
我们在介绍部署方案时已经在不同地方涉及到了普通用户账号的不同方面,在这里我们归纳总结出一个普通用户账号需要的组成部分。
AD/Kerberos 账号
由于 AFS 使用 Kerberos 协议进行身份验证,所以用户首先应该在 Kerberos KDC 里有一个普通用户账号。我们使用 Active Directory 提供 KDC 验证,因此用户应该具有一个普通域账号。这个域账号的登录名 (logon name) 将会映射为用户的 AFS 用户名。由于 AFS 用户名里不能包含斜杠,我们建议在创建普通用户账号时,登录名里不要出现斜杠(/)。
绝大多数情况下在普通用户看来,这个登录名就是其登录域的时候使用的用户名。比如,一个用户在登录 AD 域的时候通常会使用
ximeng@ad.company.com
这样的 userPrincipalName 形式,或者
ad/ximeng
这样的 Down-Level Logon Name 格式。那么这个用户映射到 AFS 里的用户名就是 ximeng
AFS 账号
我们在前文已经解释过,AFS 使用 Protection Database Server 管理用户信息。用户需要在这个数据库里拥有一条属于自己的账号记录才算拥有了一个 AFS 普通用户账号。系统管理员可以使用 pts createuser 命令创建 AFS 账号。
需要注意的是,这里的 AFS 用户名需要和前面的 AD/Kerberos 用户名保持一致。如果一个用户在登录域时使用 ad/ximeng这样的 Down-Level Logon Name 格式,那么系统管理在 AFS Protection Database 里为其创建的用户名就应该是 ximeng
AFS 不允许用户名里存在斜杠(/)。如果 Kerberos 用户名里存在斜杠,将会被 AFS 自动映射成句点(.)。比如如果一个用户的AD logon name 是 xmgu/afsadmin,那么映射到 AFS 时用户名就变成了 xmgu.afsadmin
AFS 个人目录
虽然不是一定需要,但通常情况下每个 AFS 用户都需要有一块自己的存储空间。这个存储空间以一个独立的 AFS Volume 的形式挂载在 /afs/user 这样的分支路径以下。AFS 系统管理员在创建用户账户时就可以为其创建个人目录并作相应的配置。
作为个人目录的 AFS 目录和其他目录有什么区别呢?
最基本的区别在于 ACL 的配置。一般情况下 AFS 个人目录具有至少类似如下的三条记录,我们在前文里已经介绍过它们的意义。
system:administrators rlidwka
system:authuser l
ximeng rlidwka
这三条记录将目录的管理权交给用户 ximeng 本人,并且允许其他登录用户查看目录下下一层的文件和目录名,以便用户本人进一步开放下一级目录给其他用户访问。
此外,在挂载好用户个人目录以后,系统管理员应该使用 chown 命令将用户个人目录的所有者改变为用户本人。这样根据 AFS 对 “a” 权限的默认规则,即使用户误操作将个人目录下自己的权限删除,也可以自行恢复对个人目录的控制权。
因为每个用户的个人目录是一个独立的 AFS Volume,AFS 系统管理员就可以单独控制其存储配额。比如在创建时将其配额设定为 40 GB,则当用户存储的文件和数据超过 40 GB 时,就会收到提示空间已满,需要提交申请扩容。
用于个人目录的 AFS Volume 的名称一般应该有固定的前缀,比如统一使用 user 前缀。用户 ximeng 的 AFS Volume 就可以是 user.ximeng. 使用固定前缀可以方便只读备份的定时更新。
.OldFiles 和 public 子目录
我们在前文介绍过AFS Volume 只读备份的概念。也在部署第一台服务器的时候介绍了如何创建定时备份个人目录的 cron 类任务。
AFS 系统管理员可以在创建完用户的个人目录以后就对其 AFS Volume 进行一次手动备份,并将产生的只读备份挂载在新创建的个人路径下的
.OldFiles
子目录下。只要用户的 AFS Volume 名称符合我们在创建 cron 进程时的前缀规定,其挂载在 .OldFiles 下的只读备份就会按照我们之前设定的时间定期得到更新。
此外,很多 AFS Cell 的管理员会在创建完用户个人目录以后为其创建一个叫
./public
的子目录。这个子目录的 ACL 一般类似:
system:administrators rlidwka
system:authuser rl
ximeng rlidwka
即任何登录用户都可以读取该子目录下文件的内容。这个子目录方便用户快速和其他用户分享文件。只要将文件放入该目录,其他用户就可以读取或拷贝文件内容。
public 目录并没有其他特别的地方。普通用户完全可以自行创建类似目录并赋予上述ACL,用户也可以删除该目录。只是作为 AFS 多年的习惯,很多系统管理员选择为用户提供这种初始便利。
当用户只希望和特定用户分享文件时,则需要熟悉 ACL 的常用操作和 AFS 权限字母的意义。
注意很多 Linux 的桌面程序(比如 GNOME)会在用户首次登录时自动为其创建 Public 子目录。GNOME 这样的桌面程序并不了解 AFS 这样的分布式存储系统,所以其创建的Public 子目录只是在 Linux Mode Bits 上作了设定,而没有对 ACL 进行设定,故不能实现 AFS 下共享文件的目的。为了区别,AFS 系统管理员为用户创建的子目录可以采取全小写的形式或者增加类似 “afs_” 的前缀名以便区分。

本文详述如何在AFS分布式存储系统中创建用户,结合Active Directory (AD) 和 System Security Services Daemon (SSSD)。内容包括AFS用户账号的组成部分,如AD/Kerberos账号、AFS账号、个人目录的设置,以及创建AFS普通用户的步骤,强调了POSIX属性和权限配置的重要性。
1509

被折叠的 条评论
为什么被折叠?



