ldapsearch पासवर्ड फ़ाइल प्रारूप


18

मुझे विकल्प ldapsearchका उपयोग करके पासवर्ड कैसे पारित करना चाहिए -y <password file>?
यदि मैं सादा पाठ में पासवर्ड फ़ाइल में पासवर्ड लिखता हूं, तो मुझे यह त्रुटि मिलती है:

ldap_bind: Invalid credentials (49)
    additional info: 80090308: LdapErr: DSID-0C0903AA, comment: AcceptSecurityContext error, data 52e, v1772

यदि मैं -w <password>विकल्प का उपयोग करता हूं तो भी ऐसा ही होता है।

संपादित करें :
मैं जो आदेश चला रहा हूं वह है

ldapsearch -x -D <my dn> -y .pass.txt -h server.x.x -b "dc=x,dc=y" "cn=*"

जहां फ़ाइल .pass.txtमें सादा पाठ में मेरा पासवर्ड है। DN और पासवर्ड दोनों सही हैं। अगर मैं कमांड को -Wविकल्प के साथ चलाता हूं और कमांड को सफलतापूर्वक चलाने वाले प्रॉम्प्ट पर पासवर्ड टाइप करता है, लेकिन मैं स्क्रिप्ट बनाने के लिए किसी तरह पासवर्ड स्टोर करना चाहूंगा।


आप किस तरह की "पासवर्ड फाइल" का उपयोग कर रहे हैं? आप हमें पूरा कमांड दिखाना चाहेंगे जो आप टाइप कर रहे हैं। क्या आप सही बाइंड क्रेडेंशियल्स का उपयोग कर रहे हैं?
एकमात्र

जवाबों:


22

ध्यान रखें कि ldapsearch पासवर्ड के लिए फ़ाइल की संपूर्ण सामग्री का उपयोग करेगा - जिसका अर्थ है कि यदि कोई मौजूद है तो एक समाप्ति न्यूलाइन वर्ण शामिल होगा। सत्यापित करने के लिए कि क्या यह वास्तव में आपकी समस्या है, एक के बिना एक फ़ाइल बनाने का प्रयास करें:

echo -n ThisIsaBadPassword > .pass.txt

( अद्यतन : शामिल 'एन')


1
मैंने बस यही कोशिश की, लेकिन मुझे ठीक वैसी ही त्रुटि मिलती है ...
पाओलो टेडेस्को

2
नहीं, यह नहीं होगा। न्यूलाइन से बचने के लिए आपको echo -nया उसकी आवश्यकता है printf
user1686

गूंज-एन ने चाल चली! आपकी मदद के लिए आप सभी को शुक्रिया।
पाओलो टेडेस्को

ग्रैविटी की टिप्पणी के अनुसरण में, इको-एन पूरी तरह से काम करता है, जैसे: इको-एन "सीक्रेटगॉर्ड"> /etc/ldapscripts/ldapscripts.passwd
नेड डब्ल्यू।

इसके कारण कष्टप्रद समस्या हल हुई, धन्यवाद। मैं सिर्फ sedएक मौजूदा फ़ाइल के अंत में पट्टी करता था, हालाँकि।
19

1

यह मानकर है कि नई लाइन / गाड़ी का पुनर्मूल्यांकन निम्नलिखित प्रयास करें:

cat .pass.txt | tr -d '\n\r' > .pass2.txt

फिर .pass2.txt फ़ाइल का उपयोग करें। आप हमेशा नई लाइनों और गाड़ी के रिटर्न की जांच कर सकते हैं cat -vEऔर वे क्रमशः $ और ^ M के रूप में दिखाई देंगे।

आप शायद -y <(cat .pass.txt | tr -d '\n\r')सीधे ldapsearch कमांड में भी कर सकते हैं ।


0

ldapsearch -x -D cn=Manager,dc=domain,dc=com -y pass.txt -H ldap://ldap.domain.com -b dc=domain,dc=com

आपको 600 pass.txt को चोदना पड़ सकता है


-2

पासवर्ड को वास्तविक फ़ाइल में डंप करने की कोई आवश्यकता नहीं है। बस न्यूलाइन को रोकने के लिए एन-फ्लैग के साथ इसे प्रतिध्वनित करें, फिर इसे STDIN फाइल डिस्क्रिप्टर (/ dev / fd / 0) से निम्नानुसार पढ़ें:

echo -n 'mypassword' | ldapsearch -x -D <my dn> -y /dev/fd/0 -h server.x.x -b "dc=x,dc=y" "cn=*"

इस दृष्टिकोण के साथ समस्या यह है कि आप अपने पासवर्ड की खोज के लिए शेल इतिहास और PS के अधीन हैं।
cgseller

1
मुद्दा लेना। यह 2018 के मध्य में है। मैंने अपनी गलतियों से सीखा है। मेरे 2014 को गंभीरता से न लें। धन्यवाद। :)
ब्रायन शॉल्डर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.