एक छात्र ने पूछा कि .
उपयोगकर्ता के नाम में एक डॉट ( ) होने का नकारात्मक पहलू क्या हो सकता है । उदाहरण के लिए:john.doe
यह उस मामले के लिए सिस्टम या किसी भी ऐप को कैसे प्रभावित करेगा?
एक छात्र ने पूछा कि .
उपयोगकर्ता के नाम में एक डॉट ( ) होने का नकारात्मक पहलू क्या हो सकता है । उदाहरण के लिए:john.doe
यह उस मामले के लिए सिस्टम या किसी भी ऐप को कैसे प्रभावित करेगा?
जवाबों:
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- अनुरूप कार्यक्रम के साथ उपयोगकर्ता नाम में कोई समस्या नहीं होनी चाहिए ।
इस आदेश को टर्मिनल में चलाएँ:
sudo nano /etc/adduser.conf
इस लाइन का पता लगाएँ (फ़ाइल के अंत के पास)
#NAME_REGEX="^[a-z][-a-z0-9]*$"
और इसके साथ बदलें
NAME_REGEX='^[a-z][-.a-z0-9]*$'
ध्यान दें कि -
ब्रैकेट अभिव्यक्ति में पहला वर्ण होना चाहिए [...]
, अन्यथा इसे एक श्रेणी निर्दिष्ट करने के रूप में माना जाता है a-z
।
प्रेस Ctrl+ X, फिर Y, फिर Enter।
संदर्भ:
NAME_REGEX="^[a-z][-a-z0-9_.]*\$?$"
है /etc/adduser.conf
।
useradd
के बजाय: sudo useradd -m my.user
। यही हम Userify में करते हैं और यह क्रास प्लेटफॉर्म भी है।
अनुप्रयोग जो उपयोगकर्ता नाम पढ़ते हैं, वे regex का उपयोग कर सकते हैं जो मानता है कि आपका उपयोगकर्ता नाम नियमों का पालन करता है और इसलिए आपके उपयोगकर्ता नाम को संभाल नहीं सकता है।
मार्क हैबर डेबियन बग # 604242 में संभावित नकारात्मक पहलू बताते हैं (डिफ़ॉल्ट रूप से उपयोगकर्ता नाम में डॉट्स की अनुमति दें):
उपयोगकर्ता नाम में डॉट्स होने से उपयोग करने वाले स्कैट्स के साथ कुछ समस्याएँ पैदा होती हैं
chown
, जो अभी भी डॉट्स को उपयोगकर्ता नाम और समूह नाम के बीच विभाजक के रूप में स्वीकार करता है। यदिchown
अभी भी डॉट्स को स्वीकार करता है, तो इस नोटेशन का उपयोग करके स्क्रिप्ट होगी, जो उपयोगकर्ता नाम डॉट होने पर टूट जाएगी।मैं वर्तमान डिफ़ॉल्ट (जिसे स्थानीय कॉन्फ़िगरेशन द्वारा अधिलेखित किया जा सकता है) को रखने की सलाह दूंगा, जब तक
chown
कि डॉट्स को विभाजक के रूप में स्वीकार करना बंद नहीं कर देता।
और chown
अभी भी डॉट को विभाजक के रूप में स्वीकार करता है, हालांकि यह अब दस्तावेज नहीं है। मैं मानता हूं कि POSIX संगतता प्रबल होनी चाहिए, और मैं वास्तव में किसी भी प्रतिकूल प्रभाव के बिना कई प्रणालियों पर डॉट्स वाले उपयोगकर्ता नामों को नियोजित करता हूं।