我如何讓 centos 7 使用活動目錄中的 uids 和 gids?
我正在準備最終從 CentOS 6 升級到 CentOS 7。現在,在版本 6 中,我們只是使用映射到 AD 的 LDAP 進行身份驗證。然後使用來自 Unix 的 Active Directory 擴展的 UID 和 GID。
在我對 CentOS 7 的實驗中,我瀏覽了解釋如何加入域的文件(我認為它來自 Red Hat)。這個過程大部分都是直截了當的,而且大部分效果都很好。但是,它不僅僅使用來自 AD Unix 屬性的 UID 和 GID。它將這些 ID 映射到完全不同的 ID。在 AD 中,使用者在 10000 範圍內。CentOS7 為每個使用者提供 625000000 範圍內的 UID。
到目前為止,在我的小規模測試(3 個盒子)中,UID 似乎在它們之間都是一致的,這很好。但是,當我開始在生產中推出 7 時,這將是一個逐步升級。我不會同時升級每個盒子。我擔心使用者在不同的盒子上有不同的 UID 的問題。有沒有辦法讓 CentOS 7 只使用 AD Unix 屬性中的 UID 和 GID?
這是我的 smb.conf:
[global] workgroup = COMPANY client signing = yes client use spnego = yes kerberos method = secrets and keytab log file = /var/log/samba/%m.log password server = ad_domaincontroller.company.net realm = COMPANY.NET security = ads server string = Samba Server Version %v max log size = 50
這是我的 sssd.conf
[sssd] config_file_version = 2 domains = company.net services = nss, pam, pac [nss] filter_groups = root filter_users = root [domain/company.net] id_provider = ad ad_server = ad_domiancontroller.company.net ad_hostname = centos7-22.company.net auth_provider = ad chpass_provider = ad access_provider = ad ldap_schema = ad use_fully_qualified_names = False cache_credentials = true ldap_access_order = expire ldap_account_expire_policy = ad ldap_force_upper_case_realm = true
編輯:我嘗試將 ldap_id_mapping = False 添加到 sssd.conf,但包含該行後,sssd.service 將無法啟動。這是輸出:
Sep 29 12:59:55 centos7-22 sssd[32827]: Starting up Sep 29 12:59:55 centos7-22 sssd[32828]: Starting up Sep 29 12:59:55 centos7-22 sssd[32831]: Starting up Sep 29 12:59:55 centos7-22 sssd[32830]: Starting up Sep 29 12:59:55 centos7-22 sssd[32829]: Starting up Sep 29 12:59:55 centos7-22 sssd[32832]: Starting up Sep 29 12:59:56 centos7-22 sssd[be[32833]: Starting up Sep 29 12:59:56 centos7-22 systemd[1]: sssd.service: control process exited, code=exited status=1 Sep 29 12:59:56 centos7-22 systemd[1]: Failed to start System Security Services Daemon. -- Subject: Unit sssd.service has failed -- Defined-By: systemd -- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel -- -- Unit sssd.service has failed. -- -- The result is failed. Sep 29 12:59:56 centos7-22 systemd[1]: Unit sssd.service entered failed state.
從 sssd-ad 的手冊頁:
預設情況下,AD 提供程序將從 Active Directory 中的 objectSID 參數映射 UID 和 GID 值。有關這方面的詳細資訊,請參閱下面的“ID 映射”部分。如果您想禁用 ID 映射,而是依賴 Active Directory 中定義的 POSIX 屬性,您應該設置 ldap_id_mapping = False
SSSD 內部使用 ID 作為唯一性屬性,目前不支持更改 UID。
如果 ID 分配發生變化,則預期並要求必須刪除數據庫,就像從 ID 映射切換到 POSIX 資訊時一樣,反之亦然。也許它沒有在手冊頁的顯著位置記錄——請隨時送出錯誤以改進我們的文件。謝謝!