उपयोगकर्ता नाम में डॉट होने के क्या नुकसान हैं?


27

एक छात्र ने पूछा कि .उपयोगकर्ता के नाम में एक डॉट ( ) होने का नकारात्मक पहलू क्या हो सकता है । उदाहरण के लिए:john.doe

यह उस मामले के लिए सिस्टम या किसी भी ऐप को कैसे प्रभावित करेगा?

जवाबों:


38

POSIX उपयोगकर्ता नामों के बारे में यह बताता है :

[...] IEEE Std 1003.1-2001 के अनुरूप सिस्टम के पार पोर्टेबल होने के लिए, मान पोर्टेबल फ़ाइल नाम वर्ण सेट से वर्णों से बना होता है। हाइफ़न का उपयोग पोर्टेबल उपयोगकर्ता नाम के पहले चरित्र के रूप में नहीं किया जाना चाहिए।

... जहां पोर्टेबल फ़ाइल नाम वर्ण सेट है:

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 . _ -

इसके अलावा, फ़ाइल का मैनपेज/etc/adduser.confमैनपेज आइकन बताता है:

   VALID NAMES
          adduser and addgroup enforce conformity to IEEE Std 1003.1-2001,
          which  allows  only  the following characters to appear in group
          and user names: letters, digits, underscores, periods, at  signs
          (@) and dashes. The name may not start with a dash. The "$" sign
          is allowed at the end of usernames (to conform to samba).

          An additional  check  can  be  adjusted  via  the  configuration
          parameter NAME_REGEX to enforce a local policy.

तथापि,

जब भी दोनों विशिष्टताओं में डॉट, उबंटू (मेरे 13.04 पर कम से कम) शामिल हैं, तो यह लगता है:

⊳ sudo adduser as.df
adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX[_SYSTEM] configuration variable.  Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.

NAME_REGEXउबंटू में डिफ़ॉल्ट ( /etc/adduser.confमैनपेज से) है:

^[a-z][-a-z0-9]*$
  • लोअरकेस अक्षर से शुरू होता है फिर किसी भी संख्या में डैश, लोअरकेस अक्षर या अंक। नहीं _, @या .

इसलिए,

निष्कर्ष में .एक उबंटू उपयोगकर्ता नाम के लिए एक बिंदी का उपयोग किया जा सकता है, NAME_REGEXबस में बदलना होगा /etc/adduser.conf। यह देखते हुए कि यह POSIX के अनुरूप है, .किसी भी POSIX- अनुरूप कार्यक्रम के साथ उपयोगकर्ता नाम में कोई समस्या नहीं होनी चाहिए ।

उपयोगकर्ता नाम में एक डॉट को सक्षम करने के लिए

  1. इस आदेश को टर्मिनल में चलाएँ:

    sudo nano /etc/adduser.conf
    
  2. इस लाइन का पता लगाएँ (फ़ाइल के अंत के पास)

    #NAME_REGEX="^[a-z][-a-z0-9]*$"
    

    और इसके साथ बदलें

    NAME_REGEX='^[a-z][-.a-z0-9]*$'
    

    ध्यान दें कि -ब्रैकेट अभिव्यक्ति में पहला वर्ण होना चाहिए [...], अन्यथा इसे एक श्रेणी निर्दिष्ट करने के रूप में माना जाता है a-z

  3. प्रेस Ctrl+ X, फिर Y, फिर Enter


संदर्भ:


@ vasa1 इस बात का संकेत देने के लिए धन्यवाद, निश्चित।
गिरि

2
हाय minerz029, जवाब को स्वीकार करने से पहले, जहां तक ​​मैं देख सकता हूं, यह एक उत्कृष्ट कोई संदेह नहीं है, क्या आप कृपया कारण बता सकते हैं कि उबंटू यह निर्णय क्यों करेगा।
लुइस अल्वाराडो

2
@LuisAlvarado: यह संभव है कि यह [गैर POSIX] कार्यक्रमों के साथ अनुकूलता के लिए है जो एक अधिक सीमित चरित्र सेट का उपयोग करके उपयोगकर्ता नाम की उम्मीद करते हैं। उबंटू डिफ़ॉल्ट रूप से वर्णों की अनुमति देता है लगभग सभी कार्यक्रमों में काम करने की गारंटी है। Adduser manpage डिफॉल्ट रेगेक्स को "सबसे रूढ़िवादी" के रूप में वर्णित करता है, जो उपयोगकर्ता नाम के सुरक्षित पक्ष पर है।
किरी

1
यह मेरे लिए काम नहीं किया, लेकिन में जोड़ रहा NAME_REGEX="^[a-z][-a-z0-9_.]*\$?$"है /etc/adduser.conf
मारियो

1
रेगेक्स को न बदलें। बस फोन useraddके बजाय: sudo useradd -m my.user। यही हम Userify में करते हैं और यह क्रास प्लेटफॉर्म भी है।
जैमिसन बेकर

3

अनुप्रयोग जो उपयोगकर्ता नाम पढ़ते हैं, वे regex का उपयोग कर सकते हैं जो मानता है कि आपका उपयोगकर्ता नाम नियमों का पालन करता है और इसलिए आपके उपयोगकर्ता नाम को संभाल नहीं सकता है।


लेकिन समान रूप से वे तब धारणा बना सकते हैं जो डिस्ट्रो द्वारा बनाई गई मान्यताओं से टकराती है, है ना?
0xC0000022L

3

मार्क हैबर डेबियन बग # 604242 में संभावित नकारात्मक पहलू बताते हैं (डिफ़ॉल्ट रूप से उपयोगकर्ता नाम में डॉट्स की अनुमति दें):

उपयोगकर्ता नाम में डॉट्स होने से उपयोग करने वाले स्कैट्स के साथ कुछ समस्याएँ पैदा होती हैं chown, जो अभी भी डॉट्स को उपयोगकर्ता नाम और समूह नाम के बीच विभाजक के रूप में स्वीकार करता है। यदि chownअभी भी डॉट्स को स्वीकार करता है, तो इस नोटेशन का उपयोग करके स्क्रिप्ट होगी, जो उपयोगकर्ता नाम डॉट होने पर टूट जाएगी।

मैं वर्तमान डिफ़ॉल्ट (जिसे स्थानीय कॉन्फ़िगरेशन द्वारा अधिलेखित किया जा सकता है) को रखने की सलाह दूंगा, जब तक chownकि डॉट्स को विभाजक के रूप में स्वीकार करना बंद नहीं कर देता।

और chownअभी भी डॉट को विभाजक के रूप में स्वीकार करता है, हालांकि यह अब दस्तावेज नहीं है। मैं मानता हूं कि POSIX संगतता प्रबल होनी चाहिए, और मैं वास्तव में किसी भी प्रतिकूल प्रभाव के बिना कई प्रणालियों पर डॉट्स वाले उपयोगकर्ता नामों को नियोजित करता हूं।

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