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 認證
為 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 軟體包來獲得。
要透過 RSAT 工具來管理 Samba4 AD DC ,你必須要把 Windows 系統加入到 Samba4 活動目錄。這將是我們下一篇文章的重點,在這之前,請繼續關注。
via: http://www.tecmint.com/manage-samba4-active-directory-linux-command-line
作者:Matei Cezar 譯者:rusking 校對:wxy
相關文章
- Samba 系列(三):使用 Windows 10 的 RSAT 工具來管理 Samba4 活動目錄架構SambaWindows架構
- Linux基礎命令---smbpasswd管理samba密碼LinuxSamba密碼
- 在 Linux 命令列下使用“原力”Linux命令列
- Linux下掛在samba 資料夾到本地LinuxSamba
- Linux命令列下進行時間管理,四種方式完成!Linux命令列
- 在Linux中,如何配置Samba共享?LinuxSamba
- Linux 命令列下連線WiFiLinux命令列WiFi
- Linux系統管理命令二(轉)Linux
- 架構學習筆記系列二架構筆記
- Linux 命令列下的好東西Linux命令列
- 企業應用架構研究系列二:MSF&Scrum 專案管理應用架構Scrum專案管理
- 在linux下啟動tomcat命令LinuxTomcat
- 在 Linux 命令列中使用 tcpdump 抓包Linux命令列TCP
- 在 Linux 命令列中轉換大小寫Linux命令列
- 在Linux命令列檢視影像的方法Linux命令列
- Linux命令列Linux命令列
- linux下的命令列播放器mocLinux命令列播放器
- Linux Samba 部署LinuxSamba
- Linux 探索之旅 | 第二部分第二課:命令列,世界盡在掌握Linux命令列
- 在Linux命令列傳送電子郵件Linux命令列
- Linux 黑乎乎的命令列下,如何除錯 Python?Linux命令列除錯Python
- Linux 命令列下的最佳文字編輯器Linux命令列
- 基本linux命令列Linux命令列
- 在 Linux 命令列中使用 nudoku 解決謎題Linux命令列
- 使用 Calcurse 在 Linux 命令列中組織任務Linux命令列
- 使用 xclip 在 Linux 命令列中複製貼上Linux命令列
- 在 Linux 中如何從命令列查詢 VirtualBox 版本Linux命令列
- 在 Linux 中使用ImageMagick命令列操作影像檔案Linux命令列
- linux命令大全-linux命令使用和管理Linux
- 微服務架構下分散式session管理微服務架構分散式Session
- Netty 原始碼分析系列(二)Netty 架構設計Netty原始碼架構
- Linux下命令列中的複製和貼上Linux命令列
- Linux下命令列開啟關閉觸控板Linux命令列
- linux 下MySQL命令列匯出csv檔案格式LinuxMySql命令列
- Linux 命令 ls命令系列(精華)Linux
- LoadBalancer在kubernetes架構下的實踐架構
- Linux命令列筆記Linux命令列筆記
- 在 Linux 命令列中使用 ls 列出檔案的技巧Linux命令列
- 在 Linux 命令列傳送郵件的 5 種方法Linux命令列