5.6. 执行多用户 SMB 挂载

您为挂载共享提供的凭据默认确定对挂载点的访问权限。例如,如果您在挂载共享时使用 DOMAIN\example 用户,则共享上的所有操作都将以该用户的身份执行,而不管哪个本地用户执行此操作。

然而,在某些情况下,管理员希望在系统启动时自动挂载共享,但用户应使用他们自己的凭据对共享的内容执行操作。multiuser 挂载选项允许您配置此场景。

重要

要使用 multiuser 挂载选项,还必须将 sec 挂载选项设置为支持以非交互方式提供凭据的安全类型,如 krb5 ,或带有凭据文件的 ntlmssp 选项。详情请参阅 以用户身份访问共享

root 用户使用 multiuser 选项以及对共享内容具有最少访问权限的帐户挂载共享。然后,常规用户可以使用 cifscreds 工具将其用户名和密码提供给当前会话的内核密钥环。如果用户访问挂载的共享的内容,则内核将使用内核密钥环中的凭据,而不是最初用来挂载共享的凭据。

使用此功能包含以下步骤:

先决条件

  • cifs-utils 软件包已安装。

5.6.1. 使用 multiuser 选项挂载共享

在用户可以使用他们自己的凭据访问共享之前,使用权限有限的帐户,以 root 用户身份挂载共享。

流程

在系统启动时,使用 multiuser 选项自动挂载共享:

  1. /etc/fstab 文件中为共享创建条目。例如:

    //server_name/share_name  /mnt  cifs  multiuser,sec=ntlmssp,credentials=/root/smb.cred  0 0
  2. 挂载共享:

    # mount /mnt/

如果您不想在系统启动时自动挂载共享,请通过将 -o multiuser,sec=security_type 传给 mount 命令来手动挂载它。有关手动挂载 SMB 共享的详情,请参考 手动挂载 SMB 共享

5.6.2. 验证是否使用 multiuser 选项挂载 SMB 共享

若要验证共享是否是通过 multiuser 选项挂载的,可显示挂载选项。

流程

# mount
...
//server_name/share_name on /mnt type cifs (sec=ntlmssp,multiuser,...)

如果挂载选项列表中显示了 multiuser 条目,则启用了该功能。

5.6.3. 以用户身份访问共享

如果 SMB 共享是使用 multiuser 选项挂载的 ,则用户可以向内核密钥环提供其服务器凭据:

# cifscreds add -u SMB_user_name server_name
Password: password

当用户在包含挂载的 SMB 共享的目录中执行操作时,服务器将为此用户应用文件系统权限,而不是挂载共享时最初使用的权限。

注意

多个用户可以同时对挂载的共享使用自己的凭据来执行操作。