मैं लिनक्स में एक उपयोगकर्ता को एक प्रारंभिक / डिफ़ॉल्ट पासवर्ड कैसे निर्दिष्ट कर सकता हूं?


10

मुझे एक गाइड मिला जो बताता है कि उपयोगकर्ता का पासवर्ड कैसे सेट किया जाए । मैं इसे स्वचालित करने और उपयोगकर्ता को एक ई-मेल भेजने की कोशिश कर रहा हूं जैसे:

userid created with password XYZ.
request to change the initial password.

ऊपर दिए गए दस्तावेज़ के अनुसार, एक एन्क्रिप्टेड पासवर्ड को पायथन का उपयोग करके बनाया जाना चाहिए और usermodइस तरह कमांड को खिलाया जाना चाहिए :

 usermod -p "<encrypted-password>" <username>

क्या ऐसा करने के लिए कोई अन्य सरल तरीके हैं? मैं इसे करने के लिए कोई विशेष उपयोगिता डाउनलोड नहीं करना चाहता; इसे जितना संभव हो सामान्यीकृत किया जाना चाहिए।


संपादित करें : यहां तक ​​कि उपरोक्त लिंक में दी गई विधि मेरे लिए काम नहीं करती है:

bash-3.00# python
Python 2.4.6 (#1, Dec 13 2009, 23:43:51) [C] on sunos5
Type "help", "copyright", "credits" or "license" for more information.
>>> import crypt; print crypt.crypt("<password>","<salt>")
<sOMrcxm7pCPI
>>> ^D
bash-3.00# useradd -g other -p "sOMrcxm7pCPI" -G bin,sys -m -s /usr/bin/bash mukesh2
UX: useradd: ERROR: project sOMrcxm7pCPI does not exist.  Choose another.
UX: useradd: sOMrcxm7pCPI name should be all lower case or numeric.

यहाँ एक और लिंक है जो मुझे मिला है, लेकिन इसमें सुरक्षा के मुद्दे का भी उपयोग किया गया है -p विकल्प के साथ usermodजब कोई व्यक्ति psप्रक्रिया को देखने के लिए उपयोग करता है, तो पासवर्ड दिखाई दे रहा है
munish

जवाबों:


13

आप chpasswdइसे इस तरह से करने के लिए उपयोग कर सकते हैं :

echo "username:newpassword" | chpasswd

यदि आप सुविधाजनक chpasswdहो echo, तो आप इसके अलावा अन्य कार्यक्रमों से पाइप कर सकते हैं , लेकिन यह चाल चलेगा।

संपादित करें: शेल स्क्रिप्ट के भीतर पासवर्ड उत्पन्न करने और फिर इसे सेट करने के लिए, आप कुछ इस तरह से कर सकते हैं:

# Change username to the correct user:
USR=username
# This will generate a random, 8-character password:
PASS=`tr -dc A-Za-z0-9_ < /dev/urandom | head -c8`
# This will actually set the password:
echo "$USR:$PASS" | chpasswd

अधिक जानकारी के लिए chpasswd, http://linux.die.net/man/8/chpasswd देखें

(पासवर्ड बनाने की कमान http://nixcraft.com/shell-scripting/13454-command-generate-random-password-string.html से थी )


धन्यवाद @ डॉमिनिक हम्म, चिवड शायद एआईएक्स में है ... मैंने इसका इस्तेमाल नहीं किया। और मेरे पास एक पासवर्ड लिखने के लिए है ... क्या यह स्क्रिप्ट द्वारा उत्पन्न नहीं किया जा सकता जैसे प्रश्न लिंक में ... दुर्भाग्य से यहां तक ​​कि मेरे लिए काम नहीं किया
मुनिश्री

@ मुनिश मुझे स्क्रिप्ट में जेनरेट करने से आपका मतलब बिल्कुल पक्का नहीं है, लेकिन मैंने उम्मीद से ज्यादा मददगार होने के लिए अपना जवाब अपडेट किया।
डोमिनिक पास्टर

काम नहीं करता। "प्रमाणीकरण टोकन हेरफेर त्रुटि"
सेरिन

@Cerin किसी भी तरह से आप कुछ कर रहे हैं sudo echo "username:newpass" | chpasswd? क्योंकि उन्नत अनुमतियाँ sudoपाइप से नहीं गुजरती हैं, इसलिए chpasswdसामान्य उपयोगकर्ता के रूप में चल रही होंगी। इसे sudo, जैसे कि , अंदर ले जाकर ठीक किया जा सकता है echo "username:newpass" | sudo chpasswd। ऐसी अन्य समस्याएं भी हैं जो उस त्रुटि संदेश का कारण बन सकती हैं, लेकिन इस तरह की अनुमतियाँ त्रुटियां शायद सबसे आम हैं।
डोमिनिक पास्टर

1
कमांड लाइन पर पासवर्ड डब्ल्यू, पीएस, या अन्य कमांड का उपयोग करके उसी मशीन पर अन्य लॉग इन उपयोगकर्ताओं के लिए दिखाई दे सकते हैं जो अन्य प्रक्रियाओं के बारे में जानकारी दिखाते हैं। इस तरह से सेट किए गए पासवर्ड को उपयोगकर्ता को जल्द से जल्द बदलना चाहिए।
Mnebuerquo

3

आप यादृच्छिक पासवर्ड (इस मामले में 16 वर्ण) उत्पन्न करने के लिए ओपनएसएसएल का उपयोग कर सकते हैं:

# 1000 bytes should be enough to give us 16 alphanumeric ones
p=$(openssl rand 1000 | strings | grep -io [[:alnum:]] | head -n 16 | tr -d '\n')

फिर हैशेड पासवर्ड को useraddया को खिलाएंusermod

# omit the "-1" if you want traditional crypt()
usermod -p $(openssl passwd -1 "$p") <username>

क्रेडिट जहां देय हो: पासवर्ड जेनरेशन को एक समान विधि से अनुकूलित किया जाता है जो /dev/urandomइसके बजाय उपयोग करता है openssl


2

useradd को काम करना चाहिए (मैंने इसे Ubuntu पर किया है)। हो सकता है कि जाँच करें कि आपका प्रत्येक आर्गन सही है (आपके समूह मौजूद हैं, रास्ता सही है) आप कमांड को केवल एक पासवर्ड और उपयोगकर्ता के साथ चला सकते हैं, और फिर उपयोगकर्ता को हटाने के लिए उपयोग कर सकते हैं और फिर अधिक मापदंडों के साथ पुन: प्रयास कर सकते हैं, यह देखने के लिए कि क्या समस्या का कारण बनता है (जानवर बल दृष्टिकोण)।

कम से कम उबंटू में भी नए लोग हैं (मैन पेज देखें), जहां आप इसे पासवार्ड फ़ाइल के साथ एक फाइल देते हैं, जैसे कि सादा पाठ पासवर्ड सहित जानकारी, और यह उन उपयोगकर्ताओं का निर्माण करेगा। कई उपयोगकर्ताओं को एक साथ करने का अच्छा तरीका।


newusersउबंटू के लिए कमांड का उल्लेख करने के लिए +1
लेवोन

1

सबसे सरल तरीका मैंने पाया:


PASSWD="mySeCr3t-default-pa55" 
echo ${PASSWD} | passwd --stdin username_here

क्या आपने भी इसका परीक्षण किया था? passwd: unrecognized option '--stdin'
Cerin

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