閱讀774 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Samba 係列(二):在 Linux 命令行下管理 Samba4 AD 架構

這篇文章包括了管理 Samba4 域控製器架構過程中的一些常用命令,比如添加、移除、禁用或者列出用戶及用戶組等。

我們也會關注一下如何配置域安全策略以及如何把 AD 用戶綁定到本地的 PAM 認證中,以實現 AD 用戶能夠在 Linux 域控製器上進行本地登錄。

要求

第一步:在命令行下管理

1、 可以通過 samba-tool 命令行工具來進行管理,這個工具為域管理工作提供了一個功能強大的管理接口。

通過 samba-tool 命令行接口,你可以直接管理域用戶及用戶組、域組策略、域站點,DNS 服務、域複製關係和其它重要的域功能。

使用 root 權限的賬號,直接輸入 samba-tool 命令,不要加任何參數選項來查看該工具能實現的所有功能。


  1. # samba-tool -h

samba-tool  Samba 管理工具

samba-tool —— Samba 管理工具

2、 現在,讓我們開始使用 samba-tool 工具來管理 Samba4 活動目錄中的用戶。

使用如下命令來創建 AD 用戶:


  1. # samba-tool user add your_domain_user

添加一個用戶,包括 AD 可選的一些重要屬性,如下所示:


  1. --------- review all options ---------
  2. # samba-tool user add -h
  3. # samba-tool user add your_domain_user --given-name=your_name --surname=your_username --mail-address=your_domain_user@tecmint.lan --login-shell=/bin/bash

在 Samba AD 上創建用戶

在 Samba AD 上創建用戶

3、 可以通過下麵的命令來列出所有 Samba AD 域用戶:


  1. # samba-tool user list

列出 Samba AD 用戶信息

列出 Samba AD 用戶信息

4、 使用下麵的命令來刪除 Samba AD 域用戶:


  1. # samba-tool user delete your_domain_user

5、 重置 Samba 域用戶的密碼:


  1. # samba-tool user setpassword your_domain_user

6、 啟用或禁用 Samba 域用戶賬號:


  1. # samba-tool user disable your_domain_user
  2. # samba-tool user enable your_domain_user

7、 同樣地,可以使用下麵的方法來管理 Samba 用戶組:


  1. --------- review all options ---------
  2. # samba-tool group add h
  3. # samba-tool group add your_domain_group

8、 刪除 samba 域用戶組:


  1. # samba-tool group delete your_domain_group

9、 顯示所有的 Samba 域用戶組信息:  


  1. # samba-tool group list

10、 列出指定組下的 Samba 域用戶:


  1. # samba-tool group listmembers "your_domain group"

列出 Samba 域用戶組

列出 Samba 域用戶組

11、 從 Samba 域組中添加或刪除某一用戶:


  1. # samba-tool group addmembers your_domain_group your_domain_user
  2. # samba-tool group remove members your_domain_group your_domain_user

12、 如上麵所提到的, samba-tool 命令行工具也可以用於管理 Samba 域策略及安全。

查看 samba 域密碼設置:


  1. # samba-tool domain passwordsettings show

檢查 Samba 域密碼

檢查 Samba 域密碼

13、 為了修改 samba 域密碼策略,比如密碼複雜度,密碼失效時長,密碼長度,密碼重複次數以及其它域控製器要求的安全策略等,可參照如下命令來完成:


  1. ---------- List all command options ----------
  2. # samba-tool domain passwordsettings -h

管理 Samba 域密碼策略

管理 Samba 域密碼策略

不要把上圖中的密碼策略規則用於生產環境中。上麵的策略僅僅是用於演示目的。

第二步:使用活動目錄賬號來完成 Samba 本地認證

14、 默認情況下,離開 Samba AD DC 環境,AD 用戶不能從本地登錄到 Linux 係統。

為了讓活動目錄賬號也能登錄到係統,你必須在 Linux 係統環境中做如下設置,並且要修改 Samba4 AD DC 配置。

首先,打開 Samba 主配置文件,如果以下內容不存在,則添加:


  1. $ sudo nano /etc/samba/smb.conf

確保以下參數出現在配置文件中:


  1. winbind enum users = yes
  2. winbind enum groups = yes

Samba 通過 AD 用戶賬號來進行認證

Samba 通過 AD 用戶賬號來進行認證

15、 修改之後,使用 testparm 工具來驗證配置文件沒有錯誤,然後通過如下命令來重啟 Samba 服務:


  1. $ testparm
  2. $ sudo systemctl restart samba-ad-dc.service

檢查 Samba 配置文件是否報錯

檢查 Samba 配置文件是否報錯

16、 下一步,我們需要修改本地 PAM 配置文件,以讓 Samba4 活動目錄賬號能夠完成本地認證、開啟會話,並且在第一次登錄係統時創建一個用戶目錄。

使用 pam-auth-update 命令來打開 PAM 配置提示界麵,確保所有的 PAM 選項都已經使用 [空格]鍵來啟用,如下圖所示:

完成之後,按 [Tab] 鍵跳轉到 OK ,以啟用修改。


  1. $ sudo pam-auth-update

為 Samba4 AD 配置 PAM 認證

為 Samba4 AD 配置 PAM 認證

Enable PAM Authentication Module for Samba4 AD Users

Enable PAM Authentication Module for Samba4 AD Users

為 Samba4 AD 用戶啟用 PAM認證模塊

17、 現在,使用文本編輯器打開 /etc/nsswitch.conf 配置文件,在 passwd 和 group 參數的最後麵添加 winbind 參數,如下圖所示:


  1. $ sudo vi /etc/nsswitch.conf

為 Samba 服務添加 Winbind Service Switch 設置

為 Samba 服務添加 Winbind Service Switch 設置

18、 最後,編輯 /etc/pam.d/common-password 文件,查找下圖所示行並刪除 user_authtok 參數。

該設置確保 AD 用戶在通過 Linux 係統本地認證後,可以在命令行下修改他們的密碼。有這個參數時,本地認證的 AD 用戶不能在控製台下修改他們的密碼。


  1. password [success=1 default=ignore] pam_winbind.so try_first_pass

允許 Samba AD 用戶修改密碼

允許 Samba AD 用戶修改密碼

在每次 PAM 更新安裝完成並應用到 PAM 模塊,或者你每次執行 pam-auth-update 命令後,你都需要刪除 use_authtok 參數。

19、 Samba4 的二進製文件會生成一個內建的 windindd 進程,並且默認是啟用的。

因此,你沒必要再次去啟用並運行 Ubuntu 係統官方自帶的 winbind 服務。

為了防止係統裏原來已廢棄的 winbind 服務被啟動,確保執行以下命令來禁用並停止原來的 winbind 服務。


  1. $ sudo systemctl disable winbind.service
  2. $ sudo systemctl stop winbind.service

雖然我們不再需要運行原有的 winbind 進程,但是為了安裝並使用 wbinfo 工具,我們還得從係統軟件庫中安裝 Winbind 包。

wbinfo 工具可以用來從 winbindd 進程側來查詢活動目錄用戶和組。

以下命令顯示了使用 wbinfo 命令如何查詢 AD 用戶及組信息。


  1. $ wbinfo -g
  2. $ wbinfo -u
  3. $ wbinfo -i your_domain_user

檢查 Samba4 AD 信息

檢查 Samba4 AD 信息

檢查 Samba4 AD 用戶信息

檢查 Samba4 AD 用戶信息

20、 除了 wbinfo 工具外,你也可以使用 getent 命令行工具從 Name Service Switch 庫中查詢活動目錄信息庫,在 /etc/nsswitch.conf 配置文件中有相關描述內容。

通過 grep 命令用管道符從 getent 命令過濾結果集,以獲取信息庫中 AD 域用戶及組信息。


  1. # getent passwd | grep TECMINT
  2. # getent group | grep TECMINT

查看 Samba4 AD 詳細信息

查看 Samba4 AD 詳細信息

第三步:使用活動目錄賬號登錄 Linux 係統

21、 為了使用 Samba4 AD 用戶登錄係統,使用 su - 命令切換到 AD 用戶賬號即可。

第一次登錄係統後,控製台會有信息提示用戶的 home 目錄已創建完成,係統路徑為 /home/$DOMAIN/之下,名字為用戶的 AD 賬號名。

使用 id 命令來查詢其它已登錄的用戶信息。


  1. # su - your_ad_user
  2. $ id
  3. $ exit

檢查 Linux 下 Samba4 AD 用戶認證結果

檢查 Linux 下 Samba4 AD 用戶認證結果

22、 當你成功登入係統後,在控製台下輸入 passwd 命令來修改已登錄的 AD 用戶密碼。


  1. $ su - your_ad_user
  2. $ passwd

修改 Samba4 AD 用戶密碼

修改 Samba4 AD 用戶密碼

23、 默認情況下,活動目錄用戶沒有可以完成係統管理工作的 root 權限。

要授予 AD 用戶 root 權限,你必須把用戶名添加到本地 sudo 組中,可使用如下命令完成。

確保你已輸入域 、斜杠和 AD 用戶名,並且使用英文單引號括起來,如下所示:


  1. # usermod -aG sudo 'DOMAIN\your_domain_user'

要檢查 AD 用戶在本地係統上是否有 root 權限,登錄後執行一個命令,比如,使用 sudo 權限執行apt-get update 命令。


  1. # su - tecmint_user
  2. $ sudo apt-get update

授予 Samba4 AD 用戶 sudo 權限

授予 Samba4 AD 用戶 sudo 權限

24、 如果你想把活動目錄組中的所有賬號都授予 root 權限,使用 visudo 命令來編輯 /etc/sudoers配置文件,在 root 權限那一行添加如下內容:


  1. %DOMAIN\\your_domain\ group ALL=(ALL:ALL) ALL

注意 /etc/sudoers 的格式,不要弄亂。

/etc/sudoers 配置文件對於 ASCII 引號字符處理的不是很好,因此務必使用 '%' 來標識用戶組,使用反斜杠來轉義域名後的第一個斜杠,如果你的組名中包含空格(大多數 AD 內建組默認情況下都包含空格)使用另外一個反斜杠來轉義空格。並且域的名稱要大寫。

授予所有 Samba4 用戶 sudo 權限

授予所有 Samba4 用戶 sudo 權限

好了,差不多就這些了!管理 Samba4 AD 架構也可以使用 Windows 環境中的其它幾個工具,比如 ADUC、DNS 管理器、 GPM 等等,這些工具可以通過安裝從 Microsoft 官網下載的 RSAT 軟件包來獲得。

原文發布時間為:2017-12-28

本文來自雲棲社區合作夥伴“Linux中國”

最後更新:2017-05-31 11:04:54

  上一篇:go  NASA重金懸賞 太空尿片最佳解決方案
  下一篇:go  如何看待AI學者大規模從校園“出走”到工業界?