**本文内容可能不是最新的,请查看官方文档:
[Linux客户端连接AD服务器并挂载SMB文件系统
](https://help.aliyun.com/document_detail/311431.html#section-iq7-sk2-p8h
)
**
阿里云SMB协议文件存储服务可以支持基于AD域系统的用户身份认证及访问权限控制了,使线下传统的基于微软的Active Directory域的文件系统及应用可以无缝地迁移到阿里云上来,进一步降低SMB协议的文件系统使用和运维成本。阿里云SMB协议文件存储服务可以依赖用户部署在线下或者阿里云上的AD域控制器,通过Kerberos网络身份认证协议来进行AD域用户身份的认证,然后基于认证的域身份来进行目录和文件级别的访问权限控制。
本文介绍了如何在Linux客户端以AD域用户身份挂载使用阿里云SMB协议文件系统。如果需要在windows以AD域用户身份挂载使用阿里云SMB协议文件系统,请参考从Windows以AD域用户身份挂载使用阿里云SMB协议文件系统
需要注意的是,阿里云的SMB协议文件存储服务支持Kerberos认证协议和windows Active Directory对接,目前暂不支持NTLM的认证协议。因此,在以AD域用户身份挂载阿里云SMB文件系统时,需要指明使用Kerberos认证协议。否则,Linux系统会以默认NTLM的身份登录,在SMB文件系统支持guest身份登录的情况下,实际登录的是guest账号。
你可以在Linux系统加入域或者不加入域的情况下,都可以以域用户的身份挂载文件系统。下面以Linux系统不加入域的情况为例,描述以域用户身份挂载阿里云SMB协议文件系统的流程。
在Linux系统不加入域的情况下以域用户身份挂载阿里云SMB文件系统
确认你已经安装必须的包。要以域用户身份挂载阿里云SMB协议文件系统,需要cifs-utils和krb5-workstation两个包。
yum install cifs-utils krb5-workstation
添加域控制器AD的kdc到/etc/hosts
xxx.xxx.xxx.xxx <kdc_domain_name>
修改/etc/krb5.conf, 添加域相关的kdc配置信息。
[libdefaults] default_realm = <domain_name> [realms] # EXAMPLE.COM = { # kdc = kerberos.example.com # admin_server = kerberos.example.com # } <domain_name> = { kdc = <kdc_domain_name> }
得到访问阿里云SMB协议文件系统挂载点的票据信息(如果是比较新的Linux版本,可以跳过这一步。)。
# kinit -S cifs/<smb_filesystem_mount_point> domain_user_name@<domain_name> -V Using default cache: persistent:0:0 Using principal: domain_user_name@<domain_name> Password for domain_user_name@<domain_name>: Authenticated to Kerberos v5
查询票据信息:klist
# klist Ticket cache: KEYRING:persistent:0:0 Default principal: <domain_user_name>@<domain_name> Valid starting Expires Service principal 07/31/2019 05:57:36 07/31/2019 15:57:36 cifs/<smb_filesystem_mount_point>@<domain_name> renew until 08/07/2019 05:57:32
用域用户身份挂载阿里云文件系统。注意,需要指明安全认证协议为krb5。否则用户会以guest账号登录。如果是比较旧的版本,需要进行第5步)
mount -t cifs //<smb_filesystem_mount_point>/myshare /mnt -o vers=2.1,sec=krb5
- 挂载文件系统后,挂载目录中的文件和目录显示的用户名和组是Linux本地执行挂载命令的账号,权限为755。但是,如果访问挂载时所用的域用户没有权限的目录,则会访问失败。如下所示,testnopermission目录是其他域用户创建的目录,虽然ls -l显示有访问权限,但是其访问被SMB文件系统的ACL所限制。
- 我们建议用windows客户端来配置阿里云SMB文件系统的acl。当然,你也可以用getcifsacl和setcifsacl命令来取得或者配置阿里云SMB文件系统中的文件或目录的acl。
更多的关于SMB文件系统的ACL配置信息以及ACL规则,参考《阿里云SMB协议文件系统ACL权限控制使用指南》。
阿里云SMB协议文件存储服务基于AD域系统的用户身份认证及访问控制的相关文章
如果要使用阿里云SMB协议文件存储服务的基于AD域系统的用户身份认证及访问权限控制功能,请在阿里云文件系统控制台打开配置该功能。具体请参考将阿里云SMB协议文件系统挂载点接入AD域。
下面是使用基于AD域系统的用户身份认证及访问权限控制可能需要的相关知识点:
- 阿里云SMB协议文件存储服务支持基于AD域的用户身份认证及权限访问控制介绍,总体介绍阿里云SMB协议文件存储服务支持基于AD域的用户身份认证及权限访问控制的设计实现。
- Kerberos网络身份认证协议介绍及SMB文件系统对其的支持,介绍Kerberos网络身份认证协议以及与SMB协议问系统的交互。
- 安装并启用Active Directory域服务与DNS服务,介绍如何在VPC中安装并启用AD域服务和DNS服务。
- 将Windows系统机器加入AD域,介绍如何将windows机器加入AD域。
- 将阿里云SMB协议文件系统挂载点接入AD域,介绍如何在AD域服务器以及阿里云SMB协议文件系统中进行必要的配置来支持基于AD域的用户身份认证及权限访问控制。
- 从Windows以AD域用户身份挂载使用阿里云SMB协议文件系统,介绍如何从windows客户端以域用户身份挂载使用阿里云SMB协议文件系统。
- Linux客户端以AD域用户身份挂载使用阿里云SMB协议文件系统,介绍如何从Linux客户端以域用户身份挂载使用阿里云SMB协议文件系统。
- 加入AD域的Linux客户端以AD域身份自动挂载阿里云SMB协议文件系统,介绍如何把Linux客户端加入AD域,如何挂载以及自动挂载阿里云SMB协议文件系统。
- 阿里云SMB协议文件系统ACL权限控制使用指南,介绍如何正确地配置阿里云SMB协议文件系统的ACL以及相应的规则描述。
- 阿里云SMB协议文件系统AD身份认证和ACL权限控制使用场景 - Home Directory / User Profile,介绍使用权限控制的域用户Home Directory以及User Profile两个场景下的相关配置及实现。
- MacOS客户端连接阿里云NAS SMB文件系统,介绍如何从MacOS客户端挂载使用阿里云SMB协议文件系统。