ทำไมจำกัดความยาวชื่อผู้ใช้สูงสุดไม่เกิน 8 อักขระ


13

ตลอดอาชีพการทำงานต่ำต้อยของฉันในด้านไอทีโดยทั่วไปฉันเห็นความยาวชื่อผู้ใช้ จำกัด (โดยทั่วไปคือ 8 ตัวอักษร) สิ่งนี้เกิดขึ้นในระบบที่หลากหลายรวมถึง Active Directory และแอพฐานข้อมูล

มีเหตุผลสำหรับสิ่งนี้หรือไม่? มีวิธีปฏิบัติที่ดีที่สุดเกี่ยวกับการสร้างชื่อผู้ใช้หรือไม่?


1
เป็นคำถามที่ดี แต่ฉันสั่นเทาทุกครั้งที่เห็นคำว่า "การปฏิบัติที่ดีที่สุด" ไม่มีสัตว์ชนิดนี้
John Gardeniers

คำตอบ:


14

มันเป็นข้อ จำกัด ของระบบ Unix ดั้งเดิมและบริการไดเรกทอรีNISโดยเฉพาะ โดยปกติแล้วข้อ จำกัด นี้จะเกิดขึ้นถ้าองค์กรพยายามที่จะทำให้ชื่อผู้ใช้สอดคล้องกันในทุกแอปพลิเคชัน (ซึ่งโดยทั่วไปเป็นความคิดที่ดี)


1
+1 ตัวหารร่วมที่ต่ำที่สุดทำให้เกิดข้อ จำกัด เหล่านี้มากมาย โฆษณาอาจรองรับชื่อผู้ใช้ที่ใช้งานได้ถึง 256 ตัว แต่เซิร์ฟเวอร์ Solaris 7 ในคอร์บังคับให้มีความยาวสูงสุด 8 อักขระ นอกจากนี้ข้อ จำกัด เดียวกันนี้ใช้กับความยาวรหัสผ่าน
sysadmin1138

โอ้เฮ้เจ้าบล็อกที่ฉันอ่านเป็นครั้งคราว จีบ? :)
jgoldschrafe

1
และในระบบ MSWindows - สืบทอดมาจากข้อ จำกัด MSDOS 8 ตัวอักษรในชื่อไฟล์
symcbean

ไม่นั่นถูกกำจัดไปแล้ว - ด้วย Windows 95 แม้แต่ Fat ก็ได้รับการอัพเกรดรวมถึงโหมดความเข้ากันได้;)
TomTom

6

ปัญหาหลักที่ฉันเห็นเมื่อไม่นานมานี้คือ ps บน Solaris (10) มันหายไป 9 ตัวอักษร + ดังนั้นถ้าคุณต้องการ grep สำหรับชื่อผู้ใช้ที่ไม่ตรงกัน

$ sudo -u longusername ps -fu longusername
     UID   PID  PPID   C    STIME TTY         TIME CMD
longuser 14012 11985   0 09:58:39 pts/2       0:00 ps -fu longusername

หากคุณทำ ls -l ในไดเรกทอรีที่มีไฟล์ที่เป็นของผู้ใช้คอลัมน์จะถูกผลักออกจากการจัดตำแหน่ง

$ ls -ld /export/home/l*
drwxr-xr-x   2 lauser   users        6 Mar 23 10:21 /export/home/lzuser
drwxr-xr-x   2 longusername users        6 May  4 10:02 /export/home/longusername
drwxr-xr-x   2 lzuser   users        6 Mar 12 11:21 /export/home/lzuser

โดยทั่วไปคุณจะต้องระวังเครื่องมือใด ๆ ที่จัดการกับชื่อล็อกอินและไม่ใช่แค่ UID ซึ่งอาจรวมถึงสิ่งที่อ่านหรือเขียนไปยังล็อกไฟล์หรือฐานข้อมูลหรือใช้ผลลัพธ์ของเครื่องมือเช่นที่ผ่านมาใครนิ้วมือ ls, ps ฯลฯ

Google อย่างรวดเร็วเปิดหน้านี้:

http://fixunix.com/sun/113647-username-lenght-more-then-8-characters.html

ซึ่งเพิ่มเหตุผลเพิ่มเติมบางอย่าง

สำหรับแนวปฏิบัติที่ดีที่สุดสำหรับการสร้างชื่อผู้ใช้อาจมีความยุ่งยากในการใช้การเข้าสู่ระบบในเมืองหลวงแทนที่จะเป็นตัวพิมพ์เล็กดังนั้นจึงควรหลีกเลี่ยงเช่นกัน

เมื่อระบบ (เก่ากว่า) บางระบบเมื่อเห็นการเข้าสู่ระบบในเมืองหลวงเท่านั้นระบบจะใช้ค่าเริ่มต้นเป็นอย่างดีว่าสมมติว่าเทอร์มินัลของผู้ใช้ไม่รองรับตัวพิมพ์เล็กดังนั้นให้ตั้งค่า EVERYTHING ทุกอย่างเป็นตัวพิมพ์ใหญ่ คำสั่ง Unix เมื่อคุณเข้าสู่ระบบ!)

แก้ไข (16/04/2019):

ฉันเพิ่งสังเกตเห็นใน RHEL 7.5 ว่าผลลัพธ์ของ ps ไม่เล่นอย่างใดอย่างหนึ่ง:

$ ps -fulongusername
UID        PID  PPID  C STIME TTY          TIME CMD
longuse+  1230 27243  0 Apr13 pts/0    00:00:00 vim somescript.sh
longuse+  1701 27243  0 Apr05 pts/0    00:00:00 vim another-script.sh
longuse+  3116 27243  0 Apr12 pts/0    00:00:01 vim test_script.sh

มันตัดทอนชื่อผู้ใช้ด้วย '+' ซึ่งไม่เป็นประโยชน์หากคุณไม่คุ้นเคยกับผู้ใช้รายใดที่จะเป็นและหมายความว่าคุณไม่สามารถพึ่งพาเอาต์พุตของ ps เช่นอินพุตของสคริปต์ที่จำเป็นต้องรู้ว่าใคร เป็นเจ้าของกระบวนการ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.