पहले लॉगिन पर अपना पासवर्ड बदलने के लिए नए उपयोगकर्ताओं को लागू करने के लिए लिनक्स को कैसे कॉन्फ़िगर करें


11

मैं आरएचईएल 6.6 पर उपयोगकर्ताओं की पासवर्ड नीति को कॉन्फ़िगर करने का प्रयास कर रहा हूं और मैं चाहता हूं कि नव निर्मित उपयोगकर्ताओं को पहले लॉगिन पर प्रारंभिक पासवर्ड बदलने के लिए कहने के लिए सिस्टम चाहिए।

ध्यान दें, कि मैंने EXPIRE वैरिएबल को 0 और INACTIVE में -1 / etc / default / useradd पर सेट करने का प्रयास किया है, लेकिन यह निर्माण के बाद नए उपयोगकर्ता खाता समाप्ति की ओर जाता है। इन चर के साथ उपयोगकर्ता निर्माण के बाद चेज कमांड का आउटपुट है:

 # chage -l foo
 Last password change                                : Feb 22, 2015
 Password expires                                    : May 23, 2015
 Password inactive                                   : never
 Account expires                                     : Feb 22, 2015
 Minimum number of days between password change      : 1
 Maximum number of days between password change      : 90
 Number of days of warning before password expires   : 7

जब मैं फू उपयोगकर्ता के तहत लॉगिन करने की कोशिश करता हूं, तो संदेश "आपका खाता समाप्त हो गया है। कृपया अपने सिस्टम व्यवस्थापक से संपर्क करें" दिखाया गया है।

लेकिन अगर मैं 'उपयोगकर्ता गुण' विंडो खोलता हूं, तो 'पासवर्ड जानकारी' टैब चुनें और अगले लॉगिन पर 'फोर्स पासवर्ड परिवर्तन' की जांच करें, परिणाम वही होगा जो मैं उम्मीद करता हूं। नए उपयोगकर्ता को पासवर्ड बदलने के लिए कहा जाएगा। इस मामले में चेज कमांड का आउटपुट होगा:

 # chage -l foo2
 Last password change                                : password must be changed
 Password expires                                    : password must be changed
 Password inactive                                   : password must be changed
 Account expires                                     : never
 Minimum number of days between password change      : 1
 Maximum number of days between password change      : 90
 Number of days of warning before password expires   : 7

जब मैं foo2 उपयोगकर्ता के तहत लॉगिन करता हूं, तो सिस्टम मुझसे पासवर्ड बदलने के लिए कहता है।

तो, क्या दूसरी स्थिति की तरह निर्माण पर उपयोगकर्ता खाता पैरामीटर सेट करने के लिए सिस्टम को कॉन्फ़िगर करने का कोई तरीका है?

upd

 cat /etc/default/useradd
 # useradd defaults file
 GROUP=100
 HOME=/home
 INACTIVE=-1
 EXPIRE=0
 SHELL=/bin/bash
 SKEL=/etc/skel
 CREATE_MAIL_SPOOL=yes

भले ही मैं INACTIVE टिप्पणी करता हूं या इसे सकारात्मक मूल्य पर सेट करता हूं, खाता समाप्त हो गया है, लेकिन पासवर्ड नहीं।

इसके अलावा, मैंने PAM को मशीन पर कॉन्फ़िगर किया है।

अद्यतन २

मैंने इसे RHEL 6.2 और PAM कॉन्फ़िगरेशन के बिना मशीन पर चेक किया। प्रभाव समान है।


आपको प्रयोग करके देखना चाहिए chage -d 0 {user-name}
हस्त्तूर

क्या उपयोगकर्ता कमांड के दौरान इसे स्वचालित रूप से करने का कोई तरीका है, अतिरिक्त आदेशों या कार्यों के साथ नहीं?
माइक_लिचकोव

1
EXPIRE=0में /etc/default/useraddकाम करना चाहिए। मैंने पढ़ा आपने कोशिश की। आप की अधूरी लाइनों को जोड़ सकते हैं /etc/default/useradd? भले ही आप INACTIVE = -1 निर्दिष्ट नहीं करते हैं, लेकिन यह एक अलग मान है, या यदि आप उस लाइन को कमेंट करते हैं, तो यह लॉक है। क्या आप निर्दिष्ट कर सकते हैं कि क्या कमांड लाइन द्वारा बनाए जाने पर भी खाते लॉक हैं। और, कृपया, जब आपके पास एक अलग प्रश्न है, तो इसे एक अलग पृष्ठ पर पोस्ट करें यदि इसका अलग-अलग उत्तर होगा।
हस्त्तूर

1
उपयोग adduserकरने से आप chageकमांड डाल सकते हैं /usr/local/sbin/adduser.local। आप आयु क्षेत्र को सीधे / आदि / छाया में 0 पर भी सेट कर सकते हैं। useradd"निम्न स्तर की उपयोगिता" है, जिसका उद्देश्य अन्य आदेशों के साथ संयोजन में उपयोग किया जाना है।
mpez0

जवाबों:


1

चूंकि आप आरएचईएल 6 के बारे में पूछ रहे हैं, मैंने उपयोगकर्ता कोड के लिए स्रोत कोड को देखा (जो 'छाया' पैकेज के हिस्से के रूप में दिया गया है)। Useradd.c में एक फ़ंक्शन है जिसे new_spent कहा जाता है जहां यह एक नया छाया पासवर्ड प्रविष्टि सेट करता है। वहाँ यह "सृजन पर समाप्त पासवर्ड" इस तरह से संबोधित करता है:

if (0 == spent->sp_lstchg) {
/* Better disable aging than requiring a password change */
spent->sp_lstchg = -1;

Soooo ... यदि आप एक शून्य सेट करते हैं तो यह इसे -1 बना देता है।

कार्यक्रम के लेखकों ने विशेष रूप से उम्र बढ़ने को 0 के खिलाफ कोडित किया है, इसलिए यह महत्वपूर्ण नहीं होगा यदि आप इसे 0 में सेट करते हैं / EXPIRE के लिए डिफ़ॉल्ट / उपयोगकर्ता / पैरामीटर। (यदि यह मैं उस कोड को कर रहा था, तो मुझे यह देखना होगा कि क्या उपयोगकर्ता कमांड में पासवर्ड सेट कर रहा है और फिर समाप्ति की अनुमति दे रहा है, लेकिन यह मैं नहीं था ...)

इसके अलावा, ऊपर यह सुझाव दिया गया था कि आप 'chage' कमांड करने के लिए स्क्रिप्ट को /usr/local/sbin/adduser.local में रख सकते हैं। यह एक डेबियन / उबंटू प्रणाली के लिए अच्छी सलाह थी जहां उपयोगकर्तापैड एक पर्ल स्क्रिप्ट है जो वास्तव में उस फ़ाइल को चलाता है यदि वह इसे पाता है, लेकिन आरएचईएल पर उपयोगकर्तापैड कमांड सी बाइनरी है।

अगर मैं आप था और मुझे लगता है कि RHEL6 useradd पर वह व्यवहार पाने के लिए मैं छाया पैकेज के लिए SRPM प्राप्त कर रहा हूं, तो ऊपर दी गई उन पंक्तियों पर टिप्पणी करें और पैकेज और रॉकअवे पर एक rpmbuild करें। जीतना!


1

इसे स्क्रिप्ट में क्यों नहीं जोड़ा गया?

passwd -e username

यदि आप सब के बाद पहली लॉगिन है, यह काम करेगा। -eखाते का पासवर्ड तुरंत समाप्त हो रहा है, तो अगली बार प्रवेश करने उपयोगकर्ता अपना पासवर्ड अद्यतन करने के लिए मजबूर किया जाता है? (देखें man passwd)


और यदि आप एक चेज विशिष्ट समाधान की तलाश कर रहे हैं, तो शायद '0' के मान के साथ "-M / - मैक्सिमम" स्विच आज़माएँ। मैं वास्तव में चेज से परिचित नहीं हूं, लेकिन मैन पेज से यह उचित लगता है।
tniles

-1

स्वचालित:

इस फाइल को अपडेट करें:

/etc/default/useradd

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

बस इस फ़ाइल में EXPIRE = 0 का मान सेट करें, और उसके बाद, हर बार जब एक नया उपयोगकर्ता बनाया जाएगा, तो उन्हें अगले लॉगिन पर पासवर्ड बदलने के लिए मजबूर किया जाएगा।

स्रोत: GeekRide

अब, टर्मिनल में उस फ़ाइल का संपादन कठिन था। इसलिए मैंने फ़ाइल के अनुमतियों को बदलकर 777 कर दिया:

chmod 777 /etc/default/useradd

और इसे ग्रब में संपादित किया।

( लिनक्स कमांड के लिए धन्यवाद ।)

मेरे Ubuntu 12.04.5 VM में जाँच की गई।

मैनुअल:

लिनक्स पर अगले लॉगिन पर अपना पासवर्ड बदलने के लिए उपयोगकर्ता को बाध्य करने के लिए निम्न सिंटैक्स का उपयोग करें:

# chage -d 0 {user-name}

इस उदाहरण में, टॉम को अगले लॉगऑन पर अपना पासवर्ड बदलने के लिए मजबूर करें, दर्ज करें:

# chage -d 0 tom

-d 0: 1 जनवरी, 1970 के बाद के दिनों की संख्या निर्धारित करें जब पासवर्ड अंतिम बार बदल दिया गया था। दिनांक को YYYY-MM-DD प्रारूप में भी व्यक्त किया जा सकता है। इसे शून्य पर सेट करके, आप उपयोगकर्ता को पहले लॉगिन पर पासवर्ड बदलने के लिए बाध्य करने जा रहे हैं।

स्रोत: nixCraft

शुद्ध कॉपी-पेस्ट। सचमुच। ;)
मेरे Ubuntu 12.04.5 वीएम पर जाँच की।


यदि आप ऊपर दिए गए टिप्पणियों को पढ़ते हैं, तो ओपी चाहता है कि यह यूजरड कमांड के दौरान अपने आप हो जाए।
पागल

कुछ और टिप्पणी नहीं करेंगे, लेकिन chmod -R 777 /एक बहुत ही मूर्खतापूर्ण बात है!
पल्सजेट

@PulseJet हाँ मुझे पता है कि पूर्वव्यापी और यह उत्तर बहुत समय पहले था इसलिए कृपया इसे जारी रखें
वरद महाशबदे

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