本文介紹在Linux作業系統中,如何以AD域身份掛載SMB檔案系統。以及掛載成功後,如何以AD域身份訪問SMB協議檔案系統,查看和編輯檔案或目錄的ACL。
前提條件
SMB檔案系統掛載點已接入AD域。具體操作,請參見將SMB檔案系統掛載點接入AD域。
背景資訊
在SMB檔案系統掛載點接入AD域前,僅支援以匿名使用者身份掛載並使用SMB檔案系統。在SMB檔案系統掛載點接入AD域後,您可以設定是否繼續允許匿名使用者身份掛載訪問。
如果繼續允許匿名訪問檔案系統,裝置可以通過Kerberos認證以域身份訪問檔案系統,也可以通過NTLM認證以Everyone身份訪問檔案系統。
如果已設定為不允許匿名訪問檔案系統,該檔案系統將只允許通過Kerberos認證協議的Linux用戶端以AD域使用者身份進行掛載。
以下步驟以Ubuntu和CentOS為例介紹如何以AD域身份掛載訪問SMB檔案系統。
方式一:Linux用戶端加入AD域並掛載SMB檔案系統
登入Linux用戶端。
Linux用戶端加入AD域。
執行id命令,查詢AD域使用者身份狀態。
id testuser@example-company.com
如果回顯包含如下類似資訊,說明AD域使用者身份能被正常識別。
添加AD域使用者登入許可權。
授予指定使用者登入Linux用戶端的許可權。
sudo realm permit usera1@example-company.com sudo realm permit userb1@example-company.com userb2@example-company.com
授予指定使用者組登入Linux用戶端的許可權。
sudo realm permit -g 'Security Users' sudo realm permit -g 'Domain Users' 'Domain Admins'
授予所有使用者登入Linux用戶端的許可權。
sudo realm permit --all
授予禁止所有使用者登入Linux用戶端的許可權。
sudo realm deny --all
為AD域使用者添加sudo許可權。
執行以下命令開啟sudo設定檔,並根據業務情境配置sudo許可權。
sudo vim /etc/sudoers.d/domain_admins
為指定使用者添加sudo許可權。
usera1@example-company.com ALL=(ALL) ALL userb2@example-company.com ALL=(ALL) ALL
為指定使用者組添加sudo許可權。
%admingroupc1@example-company.com ALL=(ALL) ALL
為指定多word組成組名的使用者組添加sudo許可權。
%domain\ admins@example-company.com ALL=(ALL) ALL
配置SSH登入項。
開啟/etc/ssh/sshd_config設定檔,修改如下登入配置項:
PasswordAuthentication yes
執行以下命令重啟SSHD服務。
CentOS
service sshd restart
Ubuntu
service ssh restart
以AD域身份登入Linux用戶端。
ssh localhost -l usera1@example-company.com
如果回顯包含如下類似資訊,說明已使用AD域身份登入Linux用戶端。
掛載SMB檔案系統。
安裝掛載工具包。
Ubuntu
sudo apt-get install keyutils cifs-utils
CentOS
sudo yum install keyutils cifs-utils
查詢keytab資訊。
執行id命令查看登入後的uid、gid資訊。
執行以下命令掛載檔案系統。
sudo mount -t cifs //205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare /mnt -o vers=2.1,sec=krb5,cruid=371801107,uid=371801107,gid=371800513 --verbose
其中,
205dee4****-uub48.us-west-1.nas.aliyuncs.com
為檔案系統掛載點地址,請根據實際值替換。說明如果控制台SMB ACL選項中選擇了啟用傳輸加密,則需要使用vers=3.0掛載。
添加自動掛載配置。
掛載完成後,添加自動掛載配置。重啟Linux用戶端,將自動完成掛載。
在設定檔/etc/auto.master中,添加如下選項:
/share /etc/auto.cifs --timeout=30 --ghost
按如下樣本修改設定檔/etc/auto.cifs內容:
* -fstype=cifs,vers=2.1,sec=krb5,cruid=${UID},uid=${UID},gid=${GID},file_mode=0700,dir_mode=0700 ://205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare/&
重要參數欄位說明如下,請根據實際值替換。
cruid
和uid
:為本地usera1使用者的ID。gid
:為本地usera1使用者的group。205dee4****-uub48.us-west-1.nas.aliyuncs.com
:為檔案系統掛載點地址。您可以在檔案儲存體控制台檔案系統列表頁面,單擊目標檔案系統前的表徵圖,在掛載點列表的掛載點地址列,將滑鼠置於表徵圖,擷取掛載點地址。
重啟autofs服務。
systemctl restart autofs.service
確認自動掛載配置結果。
假設建立了//205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare/usera1目錄,使用權限設定為使用者usera1擁有所有許可權。
在AD域使用者登入後,執行
ls /share/usera1
命令,就能夠查看到SMB檔案系統目錄usera1下的內容即配置成功。
方式二:Linux用戶端串連AD伺服器並掛載SMB檔案系統
登入Linux用戶端。
串連AD伺服器。
以本機使用者身份儲存SMB檔案系統掛載點的票據資訊。
建立本機使用者並記錄建立使用者的UID和GID。
useradd usera1 su - usera1 id
使用建立的本機使用者儲存SMB檔案系統掛載點的票據資訊。
kinit administrator@EXAMPLE-COMPANY.COM klist
掛載SMB檔案系統。
安裝掛載工具包。
Ubuntu
sudo apt-get install keyutils cifs-utils
CentOS
sudo yum install keyutils cifs-utils
執行以下命令掛載檔案系統。
sudo mount -t cifs //205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare /mnt -o vers=2.1,sec=krb5,cruid=1004,uid=1004,gid=1004 --verbose
其中,
205dee4****-uub48.us-west-1.nas.aliyuncs.com
為檔案系統掛載點地址,請根據實際值替換。說明如果控制台SMB ACL選項中選擇了啟用傳輸加密,則需要使用vers=3.0掛載。
添加自動掛載配置。
掛載完成後,添加自動掛載配置。重啟Linux用戶端,將自動完成掛載。
在設定檔/etc/auto.master中,添加如下選項:
/share /etc/auto.cifs --timeout=30 --ghost
按如下樣本修改設定檔/etc/auto.cifs內容:
* -fstype=cifs,vers=2.1,sec=krb5,cruid=${UID},uid=${UID},gid=${GID},file_mode=0700,dir_mode=0700 ://205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare/&
重要參數欄位說明如下,請根據實際值替換。
cruid
和uid
:為本地usera1使用者的ID。gid
:為本地usera1使用者的group。205dee4****-uub48.us-west-1.nas.aliyuncs.com
:為檔案系統掛載點地址。您可以在檔案儲存體控制台檔案系統列表頁面,單擊目標檔案系統前的表徵圖,在掛載點列表的掛載點地址列,將滑鼠置於表徵圖,擷取掛載點地址。
重啟autofs服務。
systemctl restart autofs.service
確認自動掛載配置結果。
假設建立了//205dee4****-uub48.us-west-1.nas.aliyuncs.com/myshare/usera1目錄,使用權限設定為使用者usera1擁有所有許可權。
在AD域使用者登入後,執行
ls /share/usera1
命令,就能夠查看到SMB檔案系統目錄usera1下的內容即配置成功。
使用cifsacl工具管理SMB檔案系統ACL
您可以使用getcifsacl和setcifsacl命令管理SMB檔案系統ACL。樣本如下:
getcifsacl usera1/
sudo setcifsacl -a "ACL:S-1-5-21-3076751034-3769290925-1520581464-513:ALLOWED/OI|CI|I/FULL" usera1/