क्या आप किसी उपयोगकर्ता को कई पासवर्ड दे सकते हैं?


21

मैं एक ही खाते में 2 पासवर्ड असाइन करना चाहता हूं। क्या मैं जानना चाहता हूं 1) क्या यह संभव है, और 2) इसके सुरक्षा निहितार्थ क्या हैं?

ऐसा करने का कारण यह है क्योंकि मैं वर्तमान में कुछ स्थानीय परीक्षण में व्यस्त हूं, और मुझे लगा कि यह कुछ विशिष्ट स्थितियों में सुविधाजनक होगा। कुछ शोध के बाद मुझे PAM नाम की कोई चीज मिली , लेकिन मैं इस बात की जानकारी पाने में संघर्ष कर रहा हूं कि इंस्टॉलेशन / कॉन्फ़िगरेशन कैसे काम करता है।

मैं Ubuntu 12.04 चला रहा हूं।


1
मैं शायद sudouser2 के रूप में कमांड चलाने के लिए user1 को अनुमति देने के लिए सिर्फ सेटअप करूंगा । ( sudoकेवल कमांड को रूट के रूप में चलाने के लिए नहीं है; यह किसी भी उपयोगकर्ता के रूप में कमांड चला सकता है।)
cjm

जवाबों:


16

हां, हालांकि काफी असामान्य है, यह निश्चित रूप से उल्लेखनीय है।

इसके बजाय इसे स्वयं कार्यान्वित करने की कोशिश करने के रूप में डिफ़ॉल्ट /etc/password /etc/shadowआधारित प्रमाणीकरण विधि में इस तरह के कॉन्फ़िगरेशन के लिए कोई प्रावधान नहीं है, सरल तरीका प्रमाणीकरण को एक बैक-एंड पर सौंपना है जो पहले से ही एक उपयोगकर्ता के लिए कई पासवर्ड का समर्थन करता है।

एक प्रसिद्ध एलडीएपी है जिसे RFC4519 केuserPassword अनुसार गुणित किया जाता है :

'UserPassword' विशेषता में कई मानों की आवश्यकता का एक उदाहरण एक ऐसा वातावरण है जहाँ हर महीने उपयोगकर्ता को कुछ स्वचालित प्रणाली द्वारा उत्पन्न एक अलग पासवर्ड का उपयोग करने की उम्मीद की जाती है। संक्रमणकालीन अवधियों के दौरान, पीरियड्स के अंतिम और पहले दिन की तरह, सिस्टम में दो लगातार अवधियों के लिए दो पासवर्ड की अनुमति देना आवश्यक हो सकता है।

इस RFC के बावजूद, आपको इस सेटिंग के लिए वास्तव में स्वीकृत होने के लिए अधिकांश निर्देशिका सर्वर कार्यान्वयन पर पासवर्ड नीति कॉन्फ़िगरेशन को बदलने की आवश्यकता होगी।

लिनक्स की तरफ, इसे करने के लिए कुछ भी निषिद्ध नहीं है (यहाँ एक खाता जिसका नाम testuserदोनों दिया गया है pass1और विशेषता मान के pass2रूप में userPassword):

$ uname -a
Linux lx-vb 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:16:28 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
$ grep VERSION /etc/os-release
VERSION="13.04, Raring Ringtail"
$ grep "^passwd" /etc/nsswitch.conf 
passwd: files ldap
$ ldapsearch -LLL -h localhost -p 1389 -D "cn=directory manager" -w xxxxxxxx "uid=testuser" userPassword
dn: uid=testuser,ou=People,dc=example,dc=com
userPassword:: e1NTSEF9b2JWYXFDcjhNQmNJVXZXVHMzbE40SFlReStldC9XNFZ0NU4yRmc9PQ==
userPassword:: e1NTSEF9eDlnRGZ5b0NhKzNROTIzOTFha1NiR2VTMFJabjNKSWYyNkN3cUE9PQ==
$ grep testuser /etc/passwd
$ getent passwd testuser
testuser:*:12345:12345:ldap test user:/home/testuser:/bin/sh
$ sshpass -p pass1 ssh testuser@localhost id
uid=12345(testuser) gid=12345 groups=12345
$ sshpass -p pass2 ssh testuser@localhost id
uid=12345(testuser) gid=12345 groups=12345
$ sshpass -p pass3 ssh testuser@localhost id
Permission denied, please try again.

यहाँ उस तरह के विन्यास के कुछ तकनीकी और सुरक्षा संबंधी निहितार्थ दिए गए हैं:

  • उपयोगकर्ता खाता स्पष्ट रूप से हमलों के लिए अधिक संवेदनशील होगा, हालांकि यहां वास्तव में जो मायने रखता है वह है उनकी संख्या से अधिक पासवर्ड की गुणवत्ता और सुरक्षा।
  • अधिकांश उपयोगिताओं का मानना ​​है कि उपयोगकर्ता के पास एक एकल पासवर्ड है, इसलिए उपयोगकर्ता को व्यक्तिगत रूप से किसी एक पासवर्ड को अपडेट करने की अनुमति नहीं होगी। पासवर्ड परिवर्तन के बाद उपयोगकर्ता के लिए एकल पासवर्ड विशेषता की संभावना होगी।
  • यदि लक्ष्य एक से अधिक लोगों को एक ही पासवर्ड का उपयोग करके एक ही खाते को साझा करने की अनुमति देना है, तो यह पहचानने के लिए कोई तंत्र नहीं है कि वास्तव में उपयोग किए गए पासवर्ड के आधार पर कौन लॉग इन करता है।

1
क्या आप इस बारे में विस्तार से बता सकते हैं कि इसका कोई सुरक्षा प्रभाव क्यों नहीं है? मेरी पहली धारणा यह थी कि इससे किसी खाते के समझौता होने की संभावना बढ़ जाएगी, खासकर अगर एक पासवर्ड दूसरे की तुलना में काफी कमजोर हो।
जोसेफ़ आर।

1
@JosephR। तुम सही हो। मैंने जो भी सुझाव दिया उसे लागू करने और उसके साथ अनुभव करने के बाद मैंने अपना उत्तर अपडेट किया।
जुलियाग्रे

उत्कृष्ट जवाब, अब एक आकर्षण की तरह काम करता है। धन्यवाद :)
समुच्चय

7

मैंने /etc/shadowफ़ाइल में केवल एक उपयोगकर्ता के लिए 2 प्रविष्टियाँ बनाने का प्रयास किया और यह काम नहीं किया। सबसे पहले कौन-सी प्रविष्टि पहले पासवर्ड प्रविष्टि थी जिसका उपयोग किया गया था।

उदाहरण

एक परीक्षण उपयोगकर्ता बनाया।

$ useradd -d /home/newuser newuser

पासवर्ड को "सुपर123" पर सेट करें:

$ passwd newuser

/etc/shadowफ़ाइल को मैन्युअल रूप से संपादित करें और दूसरी प्रविष्टि करें:

newuser:$6$....password #1...:15963:0:99999:7:::
newuser:$6$....password #2...:15963:0:99999:7:::

फिर 2 पासवर्ड का उपयोग करके खाते के साथ लॉगिन करने का प्रयास करें।

su - newuser

पहली प्रविष्टि में /etc/shadowजो मिलता है उसका उपयोग किया जाता है, दूसरी स्थिति में प्रविष्टि कभी भी काम नहीं करती है, यदि आप इन्हें इस तरह से फ्लिप करते हैं:

newuser:$6$....password #2...:15963:0:99999:7:::
newuser:$6$....password #1...:15963:0:99999:7:::

फिर दूसरा पासवर्ड काम करता है और पहला नहीं है।

सुडो का उपयोग करें

यह दृष्टिकोण कुल हैक है, मैं सिर्फ उपयोग करूंगा sudo, यह आंशिक रूप से sudoमौजूद है।

आप इस प्रविष्टि को अपनी sudoers फ़ाइल में जोड़ सकते हैं ( /etc/sudoers) जो उपयोगकर्ता को आपके अनुसार कुछ भी करने की अनुमति देगा:

joe ALL=(yourusername) ALL

मैं वास्तव में भूल गया कि sudoऐसा कर सकते हैं .. +1
समुच्चय

4

यदि आप ऐसा कर सकते हैं, तो आपको शायद नहीं करना चाहिए।

PAM कॉन्फ़िगरेशन कुछ जटिल है और प्रमाणीकरण तंत्र के बारे में एक ट्रिज्म है: सही कॉन्फ़िगरेशन का एक सीमित सेट है लेकिन असुरक्षित कॉन्फ़िगरेशन का एक अनंत सेट है। इससे यह लगभग निश्चित हो जाता है कि यदि आप चीजों को बदलने की कोशिश करते हैं और ठीक से नहीं जानते हैं कि आप क्या कर रहे हैं तो आप चीजों को खराब कर देंगे।

यदि चुनाव सुरक्षा और "कुछ विशिष्ट स्थितियों में सुविधाजनक" के बीच है, तो पूर्व के लिए विकल्प चुनें।


"सुविधा पर सुरक्षा" के लिए +1 (जिसे मैं पूरी तरह से सहमत हूं), लेकिन मैं उस प्रकार का व्यक्ति हूं जो केवल अनुभव के लिए भी सब कुछ परीक्षण करना चाहता है, इसलिए 100% उत्तर नहीं है जिसकी मुझे तलाश है।
समुच्चय

2

आप एक ही खाते के लिए दो अलग-अलग उपयोगकर्ता नाम, उनके पासवर्ड के साथ, प्रत्येक सेट कर सकते हैं। मैन्युअल रूप vipwसे संपादित करने के लिए चलाएं /etc/passwd, उस खाते के लिए मौजूदा पंक्ति की नकल करें जिसमें आप रुचि रखते हैं और उपयोगकर्ता नाम बदलें (और यदि आपको Gecos फ़ील्ड , होम निर्देशिका और शेल पसंद है)। vipw -sउस उपयोगकर्ता के लिए लाइन चलाएं और डुप्लिकेट करें /etc/shadow। नए उपयोगकर्ता नाम के तहत लॉग इन करें और नए उपयोगकर्ता नाम के passwdलिए पासवर्ड बदलने के लिए चलाएँ । अब आपके पास दो अलग-अलग उपयोगकर्ता नाम हैं, अलग-अलग पासवर्ड के साथ, एक ही खाते के लिए (उपयोगकर्ता आईडी वह है जो खाता निर्धारित करता है)।

यह शायद एक अच्छा विचार नहीं है। आप जो करने की कोशिश कर रहे हैं उसके आधार पर, अन्य दृष्टिकोण अधिक उपयुक्त हो सकते हैं:

  • एक और खाता बनाएं और संस्करण नियंत्रण से बाहर की जाँच करके फ़ाइलों को साझा करें।
  • एक और खाता बनाएँ, एक समूह बनाएँ जो दोनों उपयोगकर्ता खातों से संबंधित हो, और समूह को उन फ़ाइलों तक पहुँच प्रदान करें जिन्हें आप साझा करना चाहते हैं।
  • एक और खाता बनाएँ और पहले खाते को आदेश दें कि sudo के साथ उस खाते के रूप में कमांड चलाएं:

    user1 ALL = (user2) ALL
    
  • खाते के लिए एक एसएसएच कुंजी बनाएं जो केवल एक विशिष्ट कमांड को चलाने की अनुमति देता है

क्या आप इसे यहाँ पर कॉपी करने का मन बना लेंगे: //askubuntu.com/questions/567139/2-password-1-account-login?
रिनविविंड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.