Linux中國

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

要求

第一步:在命令行下管理

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 'DOMAINyour_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中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國