कैसे एक संकेत के बिना पासवार्ड का उपयोग कर उपयोगकर्ता पासवर्ड सेट करने के लिए?


21

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

दुर्भाग्य से पासवार्ड सेट करने के लिए नया पासवर्ड बताते हुए कोई तर्क नहीं लगता है। मैं Ubuntu 11.10 का उपयोग कर रहा हूं।

जवाबों:


22

Usermod का प्रयास करें:

usermod --password PASSWORD USERNAME

केवल एक चीज यह पहले से एन्क्रिप्टेड पासवर्ड स्ट्रिंग की जरूरत है जो आपको पहले उत्पन्न करना होगा।


1
... जो मैं mkpasswd का उपयोग करके उत्पन्न कर सकता हूं। उत्कृष्ट धन्यवाद!
जेक पेट्रॉल्स

16
एन्क्रिप्टेड पासवर्ड जेनरेट करने के लिए आप ओप्सनल का भी उपयोग कर सकते हैं। उदाहरण के लिए:usermod --password $(echo my_new_password | openssl passwd -1 -stdin) USERNAME
एरिक स्मिथ

1
तीन साल बहुत देर से। मैं उत्तर @EricSmith नहीं बना सका, लेकिन मुझे उस आदेश का सरल संस्करण पता चला जिसने काम किया:usermod --password $(openssl passwd -1 {password}) {username}
BoCoKeith

13

आपको chpasswdकमांड को देखना चाहिए (यदि आपके लिनक्स स्वाद में उपलब्ध है):

echo 'userid:newpasswd' | chpasswd

या, आप फ़ाइल लिस्टिंग उपयोगकर्ता को कैट कर सकते हैं: प्रत्येक खाते के लिए एक अलग लाइन पर पासवार्ड।

बस।


इसने मेरे लिए काम कियाDockerfile
विश्रांत

1

एरिक स्मिथ के विचार से प्रेरित होकर, संयोजन openssl passwdऔर usermod -pकमान ने काम किया। नमक मूल्य के साथ पासवर्ड का हैशेड मूल्य उत्पन्न करें।

$ openssl passwd -1  -salt 5RPVAd clear-text-passwd43
$1$5RPVAd$vgsoSANybLDepv2ETcUH7.

फिर, एन्क्रिप्टेड स्ट्रिंग को usermod पर कॉपी करें। इसे सिंगल कोट के साथ लपेटना सुनिश्चित करें।

$ usermod -p '$1$5RPVAd$vgsoSANybLDepv2ETcUH7.' root

छाया फ़ाइल में इसे देखें।

$ grep root /etc/shadow
root:$1$5RPVAd$vgsoSANybLDepv2ETcUH7.:17774:0:99999:7:::

0

आपको पासवर्ड उम्र बढ़ने का उपयोग करना चाहिए, और उपयोगकर्ताओं को सेट करना चाहिए ताकि उन्हें पहले लॉगिन पर अपना पासवर्ड बदलना पड़े। इस लेख को देखें ।


ये एफ़टीपी-केवल खाते हैं, लेकिन अच्छी सलाह है। ;)
जेक पेट्रूल्स

0
(echo user; echo password) | passwd

मेरे लिए भौतिक होस्ट और कंटेनर दोनों में काम करता है, विभिन्न OSes के लिए (ubuntu xenial, bionic, debian9,10, centos75,76, coreos)

echo user:password | chpasswd

कुछ OS के लिए काम करता है, लेकिन कुछ OS जैसे कि डेबियन 9,10 एक त्रुटि दिखाएगा can not connect to /var/run/nscd/socketक्योंकि यह पासवर्ड को स्टोर करने के लिए /etc/nsswitch.conf का उपयोग करता है।

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