อักขระ 'ä' ในชื่อผู้ใช้ทำให้เกิดข้อบกพร่องในระบบ linux หรือไม่


11

ฉันต้องการใช้ชื่อจริงของฉันเป็นชื่อผู้ใช้ แต่มีอักขระ 'ä' ฉันพบกระทู้นี้

ตอนนี้ฉันเข้าใจแล้วทำไมตัวละครบางตัวถึงถูกปิดใช้งาน แต่สิ่งที่เกี่ยวกับ 'ä'? ตัวละครตัวนี้สามารถทำให้เกิดปัญหาใด ๆ ?

ทำไมตัวอักษรยูนิโค้ดบางตัว (ü, õ, ö, ä) ถูกปิดใช้งานเมื่อใช้ในชื่อเต็ม?

คำตอบ:


10

ในระบบที่ทันสมัย (ด้วยการสนับสนุน 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

2
ฉันคิดว่าเดสก์ท็อประบบปฏิบัติการที่ทันสมัยควรอนุญาตให้ใช้อักขระ Unicode จากส่วนเซิร์ฟเวอร์ทุกอย่างเข้าใจได้
Märt Rang

2
@ MärtRang Thing คือทุกวันนี้ทุกอย่างพูดถึง ASCII ขั้นพื้นฐาน (ขอบคุณ - มองหา EBCDIC หากคุณต้องการฝันร้าย) แต่เหนือกว่านั้นมี codepages ที่แตกต่างกันจำนวนมากที่จัดการกับตัวละครที่ไม่ได้มาตรฐาน ไม่รู้ที่จะใช้สิ่งเดียวกันคุณสามารถได้คลัสเตอร์สวย ๆ ที่ใช้เวลานานในการผ่าเพราะแต่ละด้านยืนยันอีกด้านหนึ่งกำลังพูดซึ่งพูดพล่อยๆ ในฐานะที่เป็น Piskvor พูดว่า "สิ่งหนึ่งที่น้อยกว่าที่ต้องกังวลเกี่ยวกับ" สวยมากทุกส่วนหน้ากราฟิกจะใช้ชื่อจริงของคุณในปัจจุบันอยู่แล้ว
Shadur

ฉันได้รับความประทับใจว่าอาจมีหลายระบบ (ตัวจัดการการแสดงผลบางอย่าง) ซึ่งการพิมพ์อักขระ unicode อาจเป็นปัญหา (หรือเป็นไปไม่ได้) นอกเหนือจากการมีซอฟต์แวร์จัดการชื่อผู้ใช้ตีความอย่างถูกต้อง : crying_cat_face:
ThorSummoner

3

การใช้ชื่อเข้าสู่ระบบที่ไม่ใช่ ASCII ไม่ได้รับการสนับสนุนโดยทั่วไปและฟังดูเหมือนเป็นสูตรสำหรับปัญหา ในขณะที่ UTF-8 กำลังกลายเป็นมาตรฐานการเข้ารหัสแบบพฤตินัย แต่ก็ยังมีอีกหลายคนที่ใช้การเข้ารหัสอื่น ๆ (โดยเฉพาะนอกโลกที่ใช้ภาษาอังกฤษเป็นภาษาที่ผู้คนใช้วิธีอื่นการเข้ารหัสแบบ 8 บิตหรือ 16 บิตที่เข้ากันไม่ได้เป็นเวลานาน ) ตัวอย่างเช่นคุณมีแนวโน้มที่จะพบแอปพลิเคชันที่พยายามตีความชื่อผู้ใช้ของคุณตามการเข้ารหัสของสถานที่ปัจจุบันแทนที่จะ (พยายาม) แปลเป็นการเข้ารหัสของสถานที่ปัจจุบัน ชื่อเข้าสู่ระบบของคุณยังเป็นส่วนทางด้านซ้ายของที่อยู่อีเมลของคุณและมีแนวโน้มที่จะทำให้เกิดปัญหาเนื่องจากคุณขึ้นอยู่กับการเข้ารหัสที่คุณเลือกได้รับการสนับสนุนและเป็นที่เคารพจากระบบทั้งหมดที่จดหมายของคุณผ่าน

ชื่อล็อกอินมีไว้สำหรับคอมพิวเตอร์ ใช้ ASCII ในชื่อเข้าสู่ระบบของคุณ ชื่อเต็มมีไว้สำหรับมนุษย์ ใช้ UTF-8 ในชื่อเต็มของคุณ


2

คำถามสุดท้ายคือคำตอบที่ง่ายที่สุด: ประเพณีการปฏิบัติจริงความเรียบง่าย (สำหรับนักพัฒนา) และการพกพาหากคุณต้องการที่จะเป็นกุศลหรือล้าหลังหรือเป็นไปไม่ได้การใช้งานไม่ได้ (สำหรับผู้ใช้) ความไม่รู้และความไม่สะดวก เสื้อ US-ASCIIเป็นชุดตัวละครที่ถูกใช้มาตั้งแต่เช้าตรู่ (pre-web สำหรับเด็ก ๆ ) เกือบทุกที่

ในหลาย ๆ แอปพลิเคชั่นจำนวนมากนั้นไม่รองรับการใช้งานตัวละครในตัวนอกเหนือจากสิ่งที่คุณเห็นบนแป้นพิมพ์ภาษาอังกฤษ กล่าวอีกนัยหนึ่งซอฟต์แวร์อาจสนับสนุนหรือไม่สนับสนุนและคุณคาดหวังได้เฉพาะสิ่งที่ไม่คาดคิดเท่านั้น


2
ฉันเห็นด้วยกับที่เมื่อฉันต้องการสร้างผู้ใช้ไปยังเซิร์ฟเวอร์ ทำไมไม่เปิดใช้งานอักขระ Unicode เมื่อคุณใช้ linux เป็น desktop OS?
Märt Rang

1
และจะทำอย่างไรหากมีการใช้ชื่อผู้ใช้เพื่อเข้าถึงพร็อกซี, แซมบ้า, NFS หรือบริการอื่น ๆ หรือโฟลเดอร์บ้านผ่านเส้นทางที่ใช้ร่วมกัน?
Sirex
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.