มีเหตุผลทางเทคนิคหรือไม่ สิ่งนี้เป็นสิ่งประดิษฐ์จากยุคแรก ๆ ของ Linux หรือ Unix หรือไม่และถ้าเป็นเช่นนั้นมีเหตุผลทำไมมันยังคงอยู่?
ฉันไม่สามารถคิดถึงเหตุผลทางเทคนิค - ในอดีตเป็นเพียง ASCII วิธีการอ่านและพิมพ์ลงในมือของ coder
ยูนิกซ์ประวัติศาสตร์ repo / usr / src / cmd / passwd.c
char *uname;
insist = 0;
if(argc < 2) {
if ((uname = getlogin()) == NULL) {
printf ("Usage: passwd user\n");
goto bex;
} else {
printf("Changing password for %s\n", uname);
}
} else {
uname = argv[1];
}
เนื่องจากฉันใช้เวลาไปกับการเรียกดูหน้าเอกสารสำคัญ (ตัวอย่างเช่น: 1BSD เป็น Berkeley Software Distribution รายแรกของ Bill Joy ) ฉันไม่เห็นอะไรเลยที่ระบุชื่อผู้ใช้ ไม่ใช่เพื่อบอกว่ามันไม่มีอยู่จริง แต่ฉันไม่ได้เห็นมัน
ดังนั้นเราจึงเหลือบริบททางประวัติศาสตร์ของมนุษย์ ย้อนกลับไปเมื่อฉันเริ่มใช้เทคโนโลยีในปี 1980 เรามักจะใช้ชื่อจริงของเราในการเข้าสู่ระบบ โดยทั่วไปชื่อแรกและนามสกุลเต็มเว้นแต่จะมีการจำกัดความยาว สิ่งนี้สำคัญเนื่องจากชื่อล็อกอินของคุณถูกใช้เป็นที่อยู่อีเมลของคุณ ไม่มีใครกลับมาแล้วส่งอีเมลที่ไม่ระบุชื่อ แน่นอนว่าต้องมีข้อยกเว้นบางอย่างฉันจำไม่ได้ โดยรวมแล้วฉันเชื่อว่านี่เป็นกรณี
และตาม rfc5321 # หน้า -63 ไม่มีข้อ จำกัด ใด ๆ ในการมีอีเมล "ชื่อ" เริ่มต้นด้วยตัวเลข gmail จะสร้างชื่อผู้ใช้ที่เป็นตัวเลขทั้งหมด (รับทันทีพวกเขากำลังจะไปอย่างรวดเร็ว)
ดังนั้นหากมีรหัสใด ๆ ที่ปฏิเสธชื่อผู้ใช้ที่ขึ้นต้นด้วย [0-9] มันอาจจะเกิดขึ้นในภายหลังโดยโปรแกรมเมอร์บางคนคิดว่า "ทำไมคุณถึงมีชื่อเป็นตัวเลข" อีกครั้งฉันต้องบอกว่าอาจมีรหัส unix ในประวัติศาสตร์ที่ปฏิเสธชื่อผู้ใช้ที่ขึ้นต้นด้วยตัวเลข ฉันแค่ไม่เห็นมัน ตารางรหัสผ่านเริ่มต้นได้รับการแก้ไขด้วยมือฉันจำได้ว่าต้องทำบ่อยครั้งแม้ในช่วงต้นยุค 90
เท่าที่มันยังคงอยู่ฉันจะอ้างถึง stroustrup, C ++ 11FAQ, เมื่อใดที่จะมีไลบรารี่มาตรฐานใหม่ให้ใช้งาน?
เพื่อทำให้ปัญหายากขึ้นโปรดจำไว้ว่ามันเป็นไปไม่ได้ที่จะกำจัดฟีเจอร์เก่า ๆ แม้ว่าคณะกรรมการจะเห็นด้วยว่าพวกเขาไม่ดี: ประสบการณ์แสดงให้เห็นว่าผู้ใช้บังคับให้ผู้ใช้ทุกคนให้คุณสมบัติที่เลิกใช้และถูกแบน มานานหลายทศวรรษ