服务器消息块 (SMB) 文件系统

服务器消息块文件系统 (SMBFS) 允许使用 SMB 协议版本 1.0作为 AIX® 操作系统中的本地文件系统访问 SMB 服务器上的共享。

在此文件系统中,用户可以创建,删除,读取,写入以及修改文件和目录的访问时间。 文件和目录的所有者或访问方式不能更改。

SMBFS 能够用于访问 SMB 服务器上的文件。 SMB 服务器是运行 Samba 或 Windows XP , Windows NT 或 Windows 2000 服务器或工作站的服务器。 所有这些服务器类型都允许目录导出为共享。 然后,可以使用 SMBFS 将此共享安装在 AIX 系统上。

安装 SMB 文件系统

要在 AIX 系统上安装 SMBFS ,请安装 bos.cifs_fs 软件包。

当安装 bos.cifs_fs 包时,会创建 nsmb0 设备。 此设备允许 mount 命令使用 SMB 协议版本 1.0在 SMB 服务器与客户机之间建立连接。

安装 SMB 文件系统

您可以使用 AIX mount 命令来安装 SMBFS。 例如:
mount -v cifs -n pezman/user1/pass1 -o uid=201,fmode=750 /home /mnt
您可以使用 -o 标志指定安装选项。 命令行选项必须仅以逗号分隔,而不能以逗号和空格分隔。 该文件系统的选项为:
描述
fmode 将文件或目录设置为八进制方式。 缺省值为 755。
uid 在安装期间向文件分配 UID。 缺省值为 root
gid 在安装期间向文件分配 GID。 缺省值为 system
wrkgrp SMB 服务器从属的工作组。
op 如果使用机会锁定,将值设置成 1。 如果未使用机会锁定,将值设置成 0。
opfs 用于存储锁定高速缓存文件的高速缓存文件系统的名称。
opsz 用于机会锁定的单个高速缓存文件的大小。
opfssz 机会锁定中使用的高速缓存文件系统的大小。

您还可以使用 SMIT 实用程序 smit cifs_fs来安装文件系统,该实用程序在收集所有必需信息后运行 mount 命令。

为了安装 SMBFS ,需要提供用于向服务器进行认证的用户名和密码。 该用户名和密码用于执行服务器上所有必需的文件操作。 smit 面板中的 Password 字段未标记为必填字段。 如果未填充密码字段,那么在 cifscred 文件中搜索与提供的用户或服务器匹配的凭证。 如果存在匹配项,那么将使用 cifscred 文件中存储的密码; 否则,将通过标准 AIX 密码提示提示用户输入密码。 这样,用户可以提供一个密码而不使其可视。
注: 用于安装 SMBFS 的密码长度最多可以为 14 个字符,并且密码可以包含特殊字符。

每当在 SMBFS 安装点内的文件上调用文件系统命令 (例如,读取) 时,就会向服务器发送请求以读取该文件。 用户名和密码也将作为请求的一部分发送给服务器以便服务器确认该用户是否被许可在该服务器执行对该文件的读取操作。 因此,有关对某个文件的操作是否可允许最终依靠服务器的授权。

但是, mount 命令的 fmode 选项为客户机系统上的 root 用户提供了一种方法,用于在查询服务器之前控制对服务器上文件的访问。 如果用户没有提供 fmode 选项,其缺省值为 755。 下表说明了 fmode 选项如何使用写请求工作:
表 1. 根据给定的许可权允许或拒绝用户访问的五个案例。
案例号 得到服务器认证的用户 客户机上等待写访问权的用户 安装所有者、组和方式 服务器上的所有者、组和方式 允许访问
情况 1 user1 user2
user1,员工
rwxr-xr-x
user1,人员
rwxrwxr-x
False
情况 2 user1 root
user1,员工
rwxr-xr-x
user2,员工
rwxr-xr-x
False
案例 3 user1 user1
user1,员工
rwxr-xr-x
user2,人员
rwxrwxr-x
案例 4 user1 user1
user1,员工
rwxr-xr-x
根,系统
rwx ------
False
案例 5 user1 user1
user1,员工
rwxr-xr-x
根,系统
rwxrwxrwx

在情况 1 中,由于客户机上安装的所有者、组和方式不允许对 user2 的写访问,因此访问被拒绝。

在情况 2 中,虽然 root 有对客户机端上的所有内容的访问权,但由于经服务器认证的用户 user1 对服务器上的文件不具有访问权,因此访问也被拒绝。

在情况 3 中,由于 user1 是安装的所有者,且 user1 作为服务器上 staff 组的成员对服务器上的文件有访问权,因此授权访问。

在情况 4 中,虽然 user1 是安装的所有者,但由于文件所有权仍归服务器上的 root 所有,而组或其他用户都没有访问权,因此访问被拒绝。

在情况 5 中,由于 user1 是安装的所有者,且 user1 可以通过其他许可权访问服务器上的文件,因此被授权访问。

注意:
  1. AIX SMBFS 客户机仅支持 SMBv1。
  2. 在安装的文件系统上,从一个文件复制到另一个文件的操作仅对于大小等于或小于 4 GB + 4096 字节的文件才能成功。 对于超过该大小的文件,会显示警告消息,并只将原始文件中 4 GB + 4096 字节的内容复制到目标文件。
  3. 在已安装的文件系统上,不能在文件名中使用以下字符: 反斜杠键 {\},正斜杠键 {/},冒号 {:},星号 {*},问号 {?},小于键 {< },大于键 {>},垂直条形键 { | }。

存储的密码

SMBFS 可以将 server/user/password 凭证存储在 /etc/cifs_fs/cifscred 文件中,以允许在安装 SMBFS 时自动检索密码。

可以使用 mkcifscredchcifscredrmcifscred 命令(在 /usr/sbin 文件中)从该文件中添加、更改和除去凭证。 添加到该文件中的密码是加密的密码。 当未提供密码就尝试安装时,在 cifscred 文件中搜索匹配的凭证。 如果存在匹配项,那么将使用 cifscred 文件中存储的密码; 否则,将通过标准 AIX 密码提示提示用户输入密码。

对存储的密码的支持具有以下限制:
  • 为了使存储的密码检索正确工作,服务器命名约定必须一致。 例如,如果凭证随 IP 地址而不是主机名或标准域名 (FQDN) 添加,那么只在通过 IP 地址安装时检索密码。
  • 存储的密码检索方法不支持明文密码认证。 如果服务器要求明文密码,那么认证失败。

/etc/filesystems 支持

SMBFS 支持 /etc/filesystems 以允许在系统启动时自动安装。

/etc/filesystems 的支持还在安装时提供对存储的服务器、用户、密码和选项数据的访问权。 使用 mkcifsmntchcifsmntrmcifsmntlscifsmnt 命令(位于 /usr/sbin 中)分别添加、更改、除去和列出 /etc/filesystems 中的 cifs 节。 凭证必须存储在 cifscred 文件中。

SMBFS 故障诊断

如果 mount 命令或 smit cifs_fs 快速路径返回错误,请考虑以下故障诊断步骤:
  • 请确保用户名和密码是正确的。 用户名和密码需要允许对服务器上共享的访问。
  • 请确保服务器名称是正确的。 如果服务器名称是正确的,请使用标准主机名称以预防服务器与客户机不在同一个子网中。 您也可以尝试使用服务器 IP 地址。
  • 确保 lsdev -L|grep nsmb 命令返回设备名。 如果 nsmb 设备不可用,那么 AIX 客户机将无法与 SMB 服务器建立连接。
  • 请确保该共享名称正确。 如果该共享在服务器上不存在或者无法使用指定的用户名和密码进行访问,那么 SMB 服务器将拒绝该连接请求。
  • 使用事件标识 525 为 SMBFS 收集系统跟踪数据。
  • 确保配置了服务器,以接受 NTLM、LM 或明文密码。 以下仅列出 SMBFS 支持的密码加密类型。
  • 如果要对域进行认证,那么必须使用 wrkgrp 选项指定域名。 如果不使用该选项,将由服务器本地处理该认证。