सूडो का उपयोग करते समय एसएसएसडी / एनएसएस धीमा


0

मेरे पास OpenLDAP चलाने वाला सर्वर है, और मैं जिन मुद्दों पर चल रहा हूं, वे मेरे क्लाइंट के साथ हैं। मेरा क्लाइंट NSS के साथ SSSD चला रहा है।

पहले बूट पर, मेरे पास कोई समस्या नहीं है, और सुडो कमांड ठीक जारी किए गए हैं।

मैं एक पैकेज को स्थापित करने या संशोधित करने के प्रयास के बाद समस्याएँ शुरू करता हूं। कभी-कभी aurmanटाइमआउट होगा, अन्य समय तुरंत डाउनलोड हो जाएगा। जब यह यह डाउनलोड पारित पड़ता है, उस पर फ्रीज होगा Creating system user accounts..., Creating temporary files..., या Arming ConditionNeedsUpdate...

नीचे निष्पादित sudo journalctl --followहोने पर परिणाम है aurman -S accountsservice:

Jul 26 16:39:52 test sudo[1400]: REDACTED_USER : problem with defaults entries ; TTY=pts/2 ; PWD=/home/REDACTED_USER ; USER=root ;
Jul 26 16:39:52 test sudo[1399]: REDACTED_USER : TTY=pts/2 ; PWD=/home/REDACTED_USER ; USER=root ; COMMAND=validate
Jul 26 16:39:52 test sudo[1400]: REDACTED_USER : TTY=pts/2 ; PWD=/home/REDACTED_USER ; USER=root ; COMMAND=/usr/bin/pacman --sync --asdeps -- lightdm
Jul 26 16:39:52 test sudo[1400]: pam_unix(sudo:session): session opened for user root by REDACTED_USER(uid=0)
Jul 26 16:39:53 test systemd[1]: Reloading.
Jul 26 16:39:53 test systemd-fstab-generator[1437]: x-systemd.device-timeout ignored for REDACTED_HOSTNAME:/srv/nfs/home/
Jul 26 16:39:53 test sudo[1400]: pam_unix(sudo:session): session closed for user root
Jul 26 16:39:53 test sudo[1449]: REDACTED_USER : problem with defaults entries ; TTY=pts/2 ; PWD=/home/REDACTED_USER ; USER=root ;
Jul 26 16:40:18 test systemd[1]: Failed to get initial list of names: Connection timed out
Jul 26 16:40:25 test dbus-daemon[374]: Unknown username "systemd-timesync" in message bus configuration file
Jul 26 16:40:45 test dbus-daemon[374]: [system] Reloaded configuration
Jul 26 16:41:10 test dbus-daemon[374]: [system] Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms)
Jul 26 16:41:10 test sudo[1449]: REDACTED_USER : TTY=pts/2 ; PWD=/home/REDACTED_USER ; USER=root ; COMMAND=/usr/bin/pacman -D --asexplicit lightdm
Jul 26 16:41:10 test sudo[1449]: pam_unix(sudo:session): session opened for user root by REDACTED_USER(uid=0)
Jul 26 16:41:10 test sudo[1449]: pam_unix(sudo:session): session closed for user root

नीचे sudo journalctl --followकब sudo -iचलाया जाता है का परिणाम है:

Jul 26 17:02:00 test sudo[1645]: REDACTED_USER : problem with defaults entries ; TTY=pts/0 ; PWD=/home/REDACTED_USER ; USER=root ;
Jul 26 17:02:25 test dbus-daemon[374]: [system] Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms)
Jul 26 17:02:28 test sudo[1645]: pam_sss(sudo:auth): authentication success; logname=REDACTED_USER uid=8102 euid=0 tty=/dev/pts/0 ruser=REDACTED_USER rhost= user=REDACTED_USER
Jul 26 17:02:28 test sudo[1645]: REDACTED_USER : TTY=pts/0 ; PWD=/home/REDACTED_USER ; USER=root ; COMMAND=/bin/bash
Jul 26 17:02:28 test sudo[1645]: pam_unix(sudo:session): session opened for user root by REDACTED_USER(uid=0)

यह मेरी sssd.conf फ़ाइल है:

[sssd]
config_file_version = 2
services = nss, pam
domains = LDAP

[domain/LDAP]
cache_credentials = true
enumerate = true

id_provider = ldap
auth_provider = ldap
chpass_provider = ldap

ldap_uri = ldaps://REDACTED_HOSTNAME
ldap_search_base = dc=REDACTED,dc=HOST,dc=NAME
ldap_id_use_start_tls = true
ldap_tls_reqcert = demand
ldap_tls_cacert = /etc/openldap/certs/slapdcert.pem
ldap_chpass_uri = ldaps://REDACTED_HOSTNAME

यह मेरी nsswitch.conf फ़ाइल है (नोट: मैंने sudoers, सेवाओं और नेटग्रुप और उसी मुद्दे पर sss के साथ खेला है):

passwd: files sss mymachines systemd
group: files sss mymachines systemd
shadow: files sss
sudoers: files sss

publickey: files

hosts: files mymachines myhostname resolve [!UNAVAIL=return] dns
networks: files

protocols: files
services: files sss
ethers: files
rpc: files

netgroup: files sss

नीचे करने का परिणाम है time sudo strace -r -o trace_5.log sudo echo hi, प्रत्येक एक अलग समय पर आया था जब मैं डिबगिंग कर रहा था (पुनरावृत्ति करने के लिए, प्रत्येक पंक्ति एक अलग फ़ाइल है, और 25 वीं देरी प्रति sudoकॉल थी):

25.007024 recvmsg(6, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\3\1\1e\0\0\0\3\0\0\0m\0\0\0\6\1s\0\5\0\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 24
25.025124 openat(AT_FDCWD, "/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
25.025143 openat(AT_FDCWD, "/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
25.019033 recvmsg(6, {msg_name=NULL, msg_namelen=0, msg_iov=[{iov_base="l\3\1\1e\0\0\0\3\0\0\0m\0\0\0\6\1s\0\5\0\0\0", iov_len=24}], msg_iovlen=1, msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_DONTWAIT|MSG_CMSG_CLOEXEC) = 24
25.025170 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0

दो openatकॉल तब थे जब /etc/lcoale.conf मौजूद था, जब मैंने हटाया कि यह बंद हो गया। सबसे आम मुद्दा recvmsgकई बार कॉल था । लेकिन getent hostsठीक किया। फिर भी, getent passwdलगभग 25s लगते हैं और निम्नलिखित में दिखाया गया है sudo journctl --follow:

Jul 26 17:11:47 test dbus-daemon[374]: [system] Failed to activate service 'org.freedesktop.systemd1': timed out (service_start_timeout=25000ms)

किसी भी तरह की सहायता का स्वागत किया जाएगा...

[संपादित करें]

जब मैं दौड़ता strace -r -o trace_8 getent passwdहूँ तो मुझे मिलता है:

25.025198 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0

कृपया अपना शामिल करें /etc/nsswitch.conf
ग्रेविटी

यह अपडेट मिला, मैं इसे पहली बार भूल गया, इसलिए धन्यवाद।
211:

जवाबों:


0

आपका nsswitch.conf "passwd" और "group" मॉड्यूल गलत क्रम में हैं: के sssबाद होना चाहिए systemd

जब systemd एक सेवा शुरू करता है, तो उसे UID को अपना उपयोगकर्ता नाम (यदि कोई हो) हल करना होगा। जब डबस-डेमॉन अपने कॉन्फ़िगरेशन को लोड करता है, तो इसे यूआईडी को सुरक्षा नीतियों में पाए गए उपयोगकर्ता नामों को भी हल करना होगा। यह nsswitch के माध्यम से उसी तरह से जाता है जैसे अन्य सभी उपयोगकर्ता खाते।

आमतौर पर सभी सिस्टम सेवाओं के लिए ये मैपिंग / etc / passwd (जो कि nsswitch "फाइल" मॉड्यूल) में पाए जाते हैं, लेकिन शायद एक खराब निर्णय (अब Git में वापस लाए जाने) के कारण , कुछ systemd सेवाएं वहां अपने उपयोगकर्ता खाते नहीं बनाती हैं - इसके बजाय वे nsswitch "systemd" मॉड्यूल के माध्यम से एक गतिशील यूआईडी का अनुरोध करते हैं।

आपके वर्तमान कॉन्फ़िगरेशन में एक नेटवर्क-आधारित पासवार्ड मॉड्यूल (sss) को "सिस्टमड" मॉड्यूल से पहले सूचीबद्ध किया गया है। इसलिए जब भी systemd या dbus-daemon ने UID को उदाहरण के लिए देखने की कोशिश की systemd-timesyncd, तो वे SSSD से गुजर रहे हैं। लेकिन एसएसएसडी को सिस्टमड-टाइमसेंडीके बाद शुरू करने के लिए कतारबद्ध किया जाता है, जिसके परिणामस्वरूप गतिरोध (चक्रीय निर्भरता, यदि आप चाहते हैं)।

हालांकि मुझे संदेह है कि यह आपकी समस्याओं का एकमात्र कारण नहीं है। लेकिन यह लगभग निश्चित रूप से एक कारण है ...


मैं सुबह इसका परीक्षण करूंगा। मैंने इसे सिर्फ nslcd और ldap में परिवर्तित किया है। लेकिन मैं जांच कर सकता हूं और देख सकता हूं कि क्या इससे कोई फर्क पड़ेगा, मैंने डिबग करने के लिए बहुत सारी चीजें कीं लेकिन यह एक नहीं है।
सितंबर को वी

सबसे अधिक संभावना है, nslcd उतना प्रभावित नहीं होता है क्योंकि इसका स्टार्टअप SSSD के विपरीत सिस्टम-आधारित 'सॉकेट सक्रियण' का उपयोग नहीं करता है।
विशालकाय

तो यह था ... मैं राहत महसूस करता हूं और चिढ़ जाता हूं कि यह इतना आसान था। मैं ArchWiki LDAP प्रमाणीकरण पृष्ठ से दूर जा रहा था। अधिकांश जगह जो सेट अप को समझाते हैं, केवल संक्षेप में दिखाते हैं कि sss फाइलों के बाद है, इसलिए मैंने गलत तरीके से यह मान लिया कि यह कहां होना चाहिए था।
vi1i

"दूरस्थ प्रदाता सभी स्थानीय प्रदाताओं के बाद होना चाहिए" एक बेहतर विवरण होगा।
विशाल

पूरी तरह से सहमत हैं, इससे मुझे डेढ़ मुद्दों से बचा जा सकता था। मैं देखूंगा कि क्या मुझे पेज पर बदलाव मिल सकता है।
Vi1i
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.