ในระบบที่ทันสมัย (ด้วยการสนับสนุน Unicode แบบเต็ม) สิ่งนี้ไม่ควรมีปัญหา - โดยเน้นที่ "ไม่ควร" ตามที่ยกมาในคำตอบนั้น
ค่าเริ่มต้นคือ NAME_REGEX="^[a-z][-a-z0-9]*\$"
แม้ว่าสิ่งนี้อาจเข้มงวดมากเกินไปสำหรับระบบปัจจุบัน แต่ก็ทำให้การจัดการง่ายขึ้นเช่นเดียวกับ "สิ่งหนึ่งที่ไม่ต้องกังวล" โปรดทราบว่าชื่อผู้ใช้จะถูกนำไปใช้ในหลาย ๆ ที่ - เช่นโฮมไดเร็กตอรี่ของคุณอาจจะอยู่ในรูปแบบ/home/username
; ระบบไฟล์ที่มีสติส่วนใหญ่มีการสนับสนุน Unicode เต็มรูปแบบ แต่เช่นเดียวกับสิ่งใดก็ตามที่เกี่ยวข้องกับคอมพิวเตอร์
โปรดทราบว่ามีชื่อเข้าสู่ระบบจริงตามที่ใช้โดยระบบ (ซึ่งอยู่ภายใต้กฎเหล่านี้) แมปกับ UID ใน/etc/passwd
และมี "ชื่อเต็ม" ซึ่งเป็นสตริง (และตัวละครที่ถูกต้องส่วนใหญ่สามารถป้อนแม้ว่าจะมี คำเตือน "ไม่ใช่ ASCII")
สิ่งที่ต้องทำ: หากเป็นไปได้ฉันจะใช้ชื่อที่ไม่มีการออกเสียง (หรือเขียนอักษรโรมันในกรณีที่ไม่ใช่สคริปต์ละติน) สำหรับชื่อผู้ใช้และแบบฟอร์มจริงสำหรับชื่อเต็ม รายการใน / etc / passwd ของคุณอาจมีลักษณะเช่นนี้:
martrang:x:1001:1001:Märt Rang,,,:/home/martrang:/bin/bash