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

Matei Cezar發表於2016-12-28

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

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

要求

第一步:在命令列下管理

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

透過 samba-tool 命令列介面,你可以直接管理域使用者及使用者組、域組策略、域站點,DNS 服務、域複製關係和其它重要的域功能。

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

# samba-tool -h

samba-tool - Manage Samba Administration Tool

samba-tool —— Samba 管理工具

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

使用如下命令來建立 AD 使用者:

# samba-tool user add your_domain_user

新增一個使用者,包括 AD 可選的一些重要屬性,如下所示:

--------- review all options --------- 
# samba-tool user add -h  
# 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

Create User on Samba AD

在 Samba AD 上建立使用者

3、 可以透過下面的命令來列出所有 Samba AD 域使用者:

# samba-tool user list

List Samba AD Users

列出 Samba AD 使用者資訊

4、 使用下面的命令來刪除 Samba AD 域使用者:

# samba-tool user delete your_domain_user

5、 重置 Samba 域使用者的密碼:

# samba-tool user setpassword your_domain_user

6、 啟用或禁用 Samba 域使用者賬號:

# samba-tool user disable your_domain_user
# samba-tool user enable your_domain_user

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

--------- review all options --------- 
# samba-tool group add –h  
# samba-tool group add your_domain_group

8、 刪除 samba 域使用者組:

# samba-tool group delete your_domain_group

9、 顯示所有的 Samba 域使用者組資訊:  

# samba-tool group list

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

# samba-tool group listmembers "your_domain group"

List Samba Domain Members of Group

列出 Samba 域使用者組

11、 從 Samba 域組中新增或刪除某一使用者:

# samba-tool group addmembers your_domain_group your_domain_user
# samba-tool group remove members your_domain_group your_domain_user

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

檢視 samba 域密碼設定:

# samba-tool domain passwordsettings show

Check Samba Domain Password

檢查 Samba 域密碼

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

---------- List all command options ---------- 
# samba-tool domain passwordsettings -h 

Manage Samba Domain Password Settings

管理 Samba 域密碼策略

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

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

14、 預設情況下,離開 Samba AD DC 環境,AD 使用者不能從本地登入到 Linux 系統。

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

首先,開啟 Samba 主配置檔案,如果以下內容不存在,則新增:

$ sudo nano /etc/samba/smb.conf

確保以下引數出現在配置檔案中:

winbind enum users = yes
winbind enum groups = yes

Samba Authentication Using Active Directory User Accounts

Samba 透過 AD 使用者賬號來進行認證

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

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

Check Samba Configuration for Errors

檢查 Samba 配置檔案是否報錯

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

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

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

$ sudo pam-auth-update

Configure PAM for Samba4 AD

為 Samba4 AD 配置 PAM 認證

Enable PAM Authentication Module for Samba4 AD Users

為 Samba4 AD 使用者啟用 PAM認證模組

17、 現在,使用文字編輯器開啟 /etc/nsswitch.conf 配置檔案,在 passwdgroup 引數的最後面新增 winbind 引數,如下圖所示:

$ sudo vi /etc/nsswitch.conf

Add Windbind Service Switch for Samba

為 Samba 服務新增 Winbind Service Switch 設定

18、 最後,編輯 /etc/pam.d/common-password 檔案,查詢下圖所示行並刪除 user_authtok 引數。

該設定確保 AD 使用者在透過 Linux 系統本地認證後,可以在命令列下修改他們的密碼。有這個引數時,本地認證的 AD 使用者不能在控制檯下修改他們的密碼。

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

Allow Samba AD Users to Change Passwords

允許 Samba AD 使用者修改密碼

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

19、 Samba4 的二進位制檔案會生成一個內建的 windindd 程式,並且預設是啟用的。

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

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

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

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

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

以下命令顯示了使用 wbinfo 命令如何查詢 AD 使用者及組資訊。

$ wbinfo -g
$ wbinfo -u
$ wbinfo -i your_domain_user

Check Samba4 AD Information

檢查 Samba4 AD 資訊

Check Samba4 AD User Info

檢查 Samba4 AD 使用者資訊

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

透過 grep 命令用管道符從 getent 命令過濾結果集,以獲取資訊庫中 AD 域使用者及組資訊。

# getent passwd | grep TECMINT
# getent group | grep TECMINT

Get Samba4 AD Details

檢視 Samba4 AD 詳細資訊

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

21、 為了使用 Samba4 AD 使用者登入系統,使用 su - 命令切換到 AD 使用者賬號即可。

第一次登入系統後,控制檯會有資訊提示使用者的 home 目錄已建立完成,系統路徑為 /home/$DOMAIN/ 之下,名字為使用者的 AD 賬號名。

使用 id 命令來查詢其它已登入的使用者資訊。

# su - your_ad_user
$ id
$ exit

Check Samba4 AD User Authentication on Linux

檢查 Linux 下 Samba4 AD 使用者認證結果

22、 當你成功登入系統後,在控制檯下輸入 passwd 命令來修改已登入的 AD 使用者密碼。

$ su - your_ad_user
$ passwd

Change Samba4 AD User Password

修改 Samba4 AD 使用者密碼

23、 預設情況下,活動目錄使用者沒有可以完成系統管理工作的 root 許可權。

要授予 AD 使用者 root 許可權,你必須把使用者名稱新增到本地 sudo 組中,可使用如下命令完成。

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

# usermod -aG sudo 'DOMAIN\your_domain_user'

要檢查 AD 使用者在本地系統上是否有 root 許可權,登入後執行一個命令,比如,使用 sudo 許可權執行 apt-get update 命令。

# su - tecmint_user
$ sudo apt-get update

Grant sudo Permission to Samba4 AD User

授予 Samba4 AD 使用者 sudo 許可權

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

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

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

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

Give Sudo Access to All Samba4 AD Users

授予所有 Samba4 使用者 sudo 許可權

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

要透過 RSAT 工具來管理 Samba4 AD DC ,你必須要把 Windows 系統加入到 Samba4 活動目錄。這將是我們下一篇文章的重點,在這之前,請繼續關注。


via: http://www.tecmint.com/manage-samba4-active-directory-linux-command-line

作者:Matei Cezar 譯者:rusking 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

相關文章