मैं पासवर्ड फ़ाइल को पार्स करने के लिए grep का उपयोग कर रहा हूं।
जब मैं उपयोग करता हूं
grep -w "avahi" /etc/passwd
मुझे दो प्रतिक्रियाएं मिलीं
avahi
तथा avahi-autoipd
मुझे अनूठी प्रतिक्रिया देने के लिए मुझे कोई विधि नहीं मिली।
यह कमांड एक बड़ी स्क्रिप्ट का हिस्सा है जहां नाम (avahi
) वास्तव में एक चर है।
यह काम करता है जब नाम है rpc
तथा rpcuser
। इसलिए मैं अनुमान लगा रहा हूं कि इसका डैश के साथ कुछ करना है (-
) नाम में।
वास्तविक कोड:
#!/bin/ksh
getent shadow |cut -d: -f1-2|grep ":!!"| cut -d: -f1 > /tmp/pasck
while read line
do
NOLOGIN=`grep -w $line /etc/passwd | cut -d -f7|cut -d/ -f3`
if [[ $NOLOGIN != "nologin: && $NOLOGIN != "false" ]] ; then
echo "$line" "$NOLOGIN" >> /tmp/pasck.list
fi
done <?tmp/pasck
स्क्रिप्ट छाया फ़ाइल के माध्यम से जाने और बिना पासवर्ड वाले उपयोगकर्ताओं की तलाश करने की कोशिश कर रही है। फिर मैं उन खातों को खोजने के लिए पासवार्ड फ़ाइल के परिणामों की तुलना करता हूं जिनके लिए सेट किया गया है /bin/false
या /sbin/nologin
। शेष वास्तविक उपयोगकर्ता होंगे जिनके पास कोई पासवर्ड सेट नहीं है लेकिन सिस्टम पर अनुमति है।
उत्तर:
उत्तर № 1 के लिए 4चीजों को सरल रखते हुए - आप उस उपनिवेश को शामिल कर सकते हैं जो आपके उपयोगकर्ता नाम के बाद आता है grep
बयान:
$ grep "^avahi:" /etc/passwd
जवाब के लिए 0 № 2
आप उपयोग कर सकते हैं awk और स्पष्ट रूप से पहले बृहदान्त्र-पृथक क्षेत्र का परीक्षण करें:
awk -F: "$1 = "avahi"" /etc/passwd