OpenAFS 用户快速上手教程
如果你是一个 AFS (OpenAFS) 的新手用户,需要对 AFS 的操作有进一步的了解,这篇文章就是为你准备的。我们先介绍一点 AFS 的基本概念,然后就讨论用户最常使用的几个操作。
AFS 的目录结构
AFS 的第一级目录总是 /afs,第二级目录一般是类似 hq.company.com 这样的域名形式,但也可以是由系统管理员决定的其他字符串。
每个第二级目录都是独立管理和运行的一个 AFS 系统,叫做一个 AFS Cell. 比如
/afs/athena.mit.edu
和
/afs/ir.stanford.edu
就是两个完全不同的 AFS Cell, 前者由麻省理工学院运行和维护,后者由斯坦福大学运行和维护。如果你需要了解自己处在哪个 AFS Cell 的管理下,只要看当前路径的第二层即可。
一个用户在不同 Cell 里可以有不同的账户。这些账户分别由每个 Cell 单独管理。也就是说,如果你需要进入某个 /afs 下的子目录,你需要拥有一个合法访问这个子目录的账户。
作为普通AFS 用户,一个向你开放的 Cell 除了给你一个合法账户,还会为你创建一个属于你自己的个人目录。这种目录往往被管理员安排在类似如下形式的路径下:
/afs/hq.company.com/users/x/i/ximeng
你可以在任何一台配置了 AFS 客户端的主机上登录和访问自己的个人目录,以及所有你有访问权的目录。
对,这就像一个组织内的 dropbox,或者共享文件夹。你也可以把它看作是组织内的云存储。
一台可以访问 /afs 目录的主机被称为一个 AFS 客户端。一个 AFS 客户端可以被配置成访问多个 AFS Cell.
OpenAFS 客户端支持所有主流的 Linux, Unix 和 BSD 发行版,也支持 Windows 和 MacOS.
如果你的组织有几十台甚至几百台主机都安装了 AFS 客户端,那么你登录其中的任何一台就可以读写自己在 /afs 下的文件和目录。
登录AFS
除了向公众完全开放的子目录以外,一个 AFS Cell 必须登录才能访问。
如果你发现自己忽然无法访问理应可以访问的某个 /afs 子目录,首先需要查看的就是自己是否已经登录 AFS ,登录是否还有效。
登录 AFS 的过程可以和网上购买火车票的过程作类比。
网上购票可以大致分为两步,第一步进行实名认证购买电子车票,第二步到特定的取票点取得服务凭据,即车票。
登录 AFS 也分为两步,第一步以用户名和密码进行身份认证,第二步获取 AFS token.
- AFS 把授予用户的服务凭据叫 token. token 类似火车票,是访问 AFS 文件系统的有效凭证。AFS token 上面有用户的账户名和有效期。获取 token 的意思就是登录 AFS Cell.
以 AFS 用户名 xguan 为例,登录 AFS 的第一步的命令是 kinit
$ kinit xguan
这一步要求输入密码以证明验证身份。
如果身份验证通过,则可以执行第二步获取 AFS token. 第二步的命令是
$ aklog
这一步不需要密码。执行完毕就可以获得一个带有有效期的 AFS token。此后就可以像访问一般文件系统一样访问 /afs 目录下的内容。
查询 AFS 登录状态的命令是
$ tokens
执行该命令可以看到已经获取的 AFS token 的用户名和有效期。如果返回的内容是空,则说明没有有效的登录,需要重新登录才能访问 AFS.
超过 AFS token 有效期,登录即失效,tokens 命令的返回内容会重新变为空值。
登出 AFS 系统的命令是
$ unlog
执行此命令会销毁 AFS token
一般情况下销毁 AFS token 不会消除已经用 kinit 完成的身份认证。为了同时销毁身份认证记录以防止其他用户通过 aklog 命令不用密码就获得新的 AFS token,应该再继续执行命令
$ kdestroy
在登入登出命令上, kinit 对应 kdestroy, aklog 对应 unlog。
如果需要修改 AFS 密码,可以使用命令
$ kpasswd
然后根据提示先输入当前密码,再输入新密码两次即可。
从 Linux 系统登录 AFS
很多 Linux 服务器被配置成允许 AFS 用户直接登录。此时你的 AFS 用户名和密码就是你登录 Linux 的用户名和密码.
比如你可以使用 ssh 命令以 AFS 用户名和密码远程登录这样的 Linux 主机。Linux 主机会自动获取 AFS token,你不再需要单独执行 kinit 和 aklog 命令。登录成功后就可以直接访问 /afs 下的内容,也可以使用 tokens 命令随时查看登录状态。
Windows 登录 AFS
如果你的组织的Active Directory 域正好也配置成 AFS 的身份验证系统时,你的域账号就是你的 AFS 账号。
如果你使用的 Windows 系统已经加入Active Directory 域,同时也配置了 AFS 客户端,那么当你用域账号登录 Windows 时就完成了身份验证的第一步,不再需要执行 kinit 命令。
此时只需要打开一个命令行界面执行略作改动后的第二步命令:
> aklog