網路帳號 (Network Users)
在本機之中,對於使用者的控管需要兩個機制,一個是能提供使用者資訊的服務,如 UID、GID、GECOS 資訊 (如真實姓名等)、家目錄、預設的 shell 等,這個服務稱之為名稱服務選擇 (Name Service Switch, NSS)。另一個機制是驗證使用者提供的密碼是否正確,這個機制就稱之為可插入式認證模組 (Pluggable Authentication Modules, PAM)。
指令 getent 可以取得不同的名稱資料庫中的資料,例:
# getent passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
… 略 …
kevin:x:501:501::/home/kevin:/bin/bash
john:x:601:601:john:/home/john:/bin/bash
david:x:602:602::/home/david:/bin/bash
指令 getent passwd 可以取得 /etc/passwd 中的資訊。
在 Red Hat 中,使用指令 system-config-authentication 可以啟動 X window 中的帳號管理程式,Red Hat 的指令,只要是 system-config- 開頭的,都是 X Window 中的管理程式。
==============================
NIS 登入設定
Linux 中最常用的網路認證方式之一就是 NIS,NIS Server 會執行 ypserv 服務,NIS 除了 ypserv 之外,尚須啟動其他服務來達成遠認證功能,如 ypbind 是用來提供用戶端使用者資訊,rpc.yppasswdd 是作為遠端使用者更改密碼使用,另外,在用戶端和伺服器端都必須啟動 portmap 服務。NIS 服務會將 /etc/passwd、/etc/shadow、/etc/group、/etc/gpasswd 檔案轉換成 NIS Maps。
設定 NIS 認證最方便的方式就是使用 system-config-authentication 工具,啟動後將「啟動 NIS 支援」打勾,再點「NIS 設定」填入 NIS Domain 和 NIS Server 即可使用 NIS 認證方式登入。system-config-authentication 工具作好設定後,會將 NISDOMAIN 的設定寫入 /etc/sysconfig/network 檔案中,將 NIS Server 寫入 /etc/yp.conf 中,在 /etc/nsswitch.conf 修改認證方式,在 /etc/sysconfig/authconfig 中設成 USENIS=yes,最後在 /etc/pam.d/system-auth-ac 中將 NIS 認證模組掛載上去。
NIS 比較起來是較為不安全的登入認證模式,它可以結合 Kerberos 認證方式來改善密碼的安全性,較好的解決方案是使用 LDAP 來作認證,但是 LDAP 在設定和管理上會比 NIS 複雜。
==============================
LDAP 登入設定
要使用 LDAP 認證登入,要安裝 nss_ldap 和 openldap 兩個套件,設定方式只要啟動 system-config-authentication 來設定即可,將「啟用 LDAP 支援」打勾,再點選「設定 LDAP」,填入 LDAP 的 DN (Distinguished Name, DN) 和 LDAP 伺服器的位址,勾選是否用 TLS 加密連線。
這個啟用的動作會改變 /etc/ldap.conf 及 /etc/openldap/ldap.conf 中 LDAP 伺服器的位址、搜尋的 DN、是否使用 TLS 加密,然後在 /etc/nsswitch.conf 中設定使用 LDAP 登入認證,在 /etc/sysconfig/authconfig 中設定 USELDAPAUTH=yes 及 USELDAP=yes,最後在 /etc/pam.d/system-auth-ac 中載入 LDAP 認證的模組。