Samba 係列(二):在 Linux 命令行下管理 Samba4 AD 架構
這篇文章包括了管理 Samba4 域控製器架構過程中的一些常用命令,比如添加、移除、禁用或者列出用戶及用戶組等。
我們也會關注一下如何配置域安全策略以及如何把 AD 用戶綁定到本地的 PAM 認證中,以實現 AD 用戶能夠在 Linux 域控製器上進行本地登錄。
要求
第一步:在命令行下管理
1、 可以通過 samba-tool
命令行工具來進行管理,這個工具為域管理工作提供了一個功能強大的管理接口。
通過 samba-tool
命令行接口,你可以直接管理域用戶及用戶組、域組策略、域站點,DNS 服務、域複製關係和其它重要的域功能。
使用 root 權限的賬號,直接輸入 samba-tool
命令,不要加任何參數選項來查看該工具能實現的所有功能。
# samba-tool -h
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
在 Samba AD 上創建用戶
3、 可以通過下麵的命令來列出所有 Samba AD 域用戶:
# samba-tool user list
列出 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"
列出 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
檢查 Samba 域密碼
13、 為了修改 samba 域密碼策略,比如密碼複雜度,密碼失效時長,密碼長度,密碼重複次數以及其它域控製器要求的安全策略等,可參照如下命令來完成:
---------- List all command options ----------
# samba-tool domain passwordsettings -h
管理 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 通過 AD 用戶賬號來進行認證
15、 修改之後,使用 testparm
工具來驗證配置文件沒有錯誤,然後通過如下命令來重啟 Samba 服務:
$ testparm
$ sudo systemctl restart samba-ad-dc.service
檢查 Samba 配置文件是否報錯
16、 下一步,我們需要修改本地 PAM 配置文件,以讓 Samba4 活動目錄賬號能夠完成本地認證、開啟會話,並且在第一次登錄係統時創建一個用戶目錄。
使用 pam-auth-update
命令來打開 PAM 配置提示界麵,確保所有的 PAM 選項都已經使用 [空格]
鍵來啟用,如下圖所示:
完成之後,按 [Tab]
鍵跳轉到 OK ,以啟用修改。
$ sudo pam-auth-update
為 Samba4 AD 配置 PAM 認證
Enable PAM Authentication Module for Samba4 AD Users
為 Samba4 AD 用戶啟用 PAM認證模塊
17、 現在,使用文本編輯器打開 /etc/nsswitch.conf
配置文件,在 passwd
和 group
參數的最後麵添加 winbind
參數,如下圖所示:
$ sudo vi /etc/nsswitch.conf
為 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
允許 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
檢查 Samba4 AD 信息
檢查 Samba4 AD 用戶信息
20、 除了 wbinfo
工具外,你也可以使用 getent
命令行工具從 Name Service Switch 庫中查詢活動目錄信息庫,在 /etc/nsswitch.conf
配置文件中有相關描述內容。
通過 grep 命令用管道符從 getent
命令過濾結果集,以獲取信息庫中 AD 域用戶及組信息。
# getent passwd | grep TECMINT
# getent group | grep TECMINT
查看 Samba4 AD 詳細信息
第三步:使用活動目錄賬號登錄 Linux 係統
21、 為了使用 Samba4 AD 用戶登錄係統,使用 su -
命令切換到 AD 用戶賬號即可。
第一次登錄係統後,控製台會有信息提示用戶的 home 目錄已創建完成,係統路徑為 /home/$DOMAIN/
之下,名字為用戶的 AD 賬號名。
使用 id
命令來查詢其它已登錄的用戶信息。
# su - your_ad_user
$ id
$ exit
檢查 Linux 下 Samba4 AD 用戶認證結果
22、 當你成功登入係統後,在控製台下輸入 passwd
命令來修改已登錄的 AD 用戶密碼。
$ su - your_ad_user
$ passwd
修改 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
授予 Samba4 AD 用戶 sudo 權限
24、 如果你想把活動目錄組中的所有賬號都授予 root 權限,使用 visudo
命令來編輯 /etc/sudoers
配置文件,在 root 權限那一行添加如下內容:
%DOMAIN\\your_domain\ group ALL=(ALL:ALL) ALL
注意 /etc/sudoers
的格式,不要弄亂。
/etc/sudoers
配置文件對於 ASCII 引號字符處理的不是很好,因此務必使用 '%' 來標識用戶組,使用反斜杠來轉義域名後的第一個斜杠,如果你的組名中包含空格(大多數 AD 內建組默認情況下都包含空格)使用另外一個反斜杠來轉義空格。並且域的名稱要大寫。
授予所有 Samba4 用戶 sudo 權限
好了,差不多就這些了!管理 Samba4 AD 架構也可以使用 Windows 環境中的其它幾個工具,比如 ADUC、DNS 管理器、 GPM 等等,這些工具可以通過安裝從 Microsoft 官網下載的 RSAT 軟件包來獲得。
原文發布時間為:2017-12-28
本文來自雲棲社區合作夥伴“Linux中國”
最後更新:2017-05-31 11:04:54