Samba 系列(二):在 Linux 命令行下管理 Samba4 AD 架構
要求
第一步:在命令行下管理
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 認證
為 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 'DOMAINyour_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 軟體包來獲得。
要通過 RSAT 工具來管理 Samba4 AD DC ,你必須要把 Windows 系統加入到 Samba4 活動目錄。這將是我們下一篇文章的重點,在這之前,請繼續關注。
via: http://www.tecmint.com/manage-samba4-active-directory-linux-command-line
作者:Matei Cezar 譯者:rusking 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive