Чи є технічна причина, чому? Це артефакт з перших днів Linux або Unix, і якщо так, то чи існує це причина?
Я не можу придумати технічну причину - історично це просто ASCII. Як читається, а потім друкується, знаходиться в руках кодера.
unix-history-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 був першим розповсюдженням програмного забезпечення Берклі Джолла Джой ), я не бачив нічого, що вказувало б імена користувачів. Це не означає, що його не існує, але я цього не бачив.
Тож нам залишається історичний людський контекст. Ще коли я починав займатися технологіями в 1980 році, ми завжди використовували справжнє ім'я для входу. Зазвичай перше початкове та прізвище, якщо не було певної межі довжини. Це було важливо, оскільки ваше ім’я для входу використовувались як електронна адреса. Тоді вже ніхто не надсилав електронний лист, який був анонімним. Звичайно, мали бути деякі винятки, я їх не пам'ятаю. В цілому, я вважаю, що це так.
І відповідно до rfc5321 # page-63, жодних обмежень щодо того, щоб "ім'я" електронної пошти не було, починалося з цифри. gmail створить усі числові імена користувачів. (зрозумій зараз, вони йдуть швидко).
Отже, якщо є який-небудь код, який відхиляє ім'я користувача, починаючи з [0-9], то він, ймовірно, з’явився пізніше, коли хтось із програмістів думав: "чому б у вас було число як ім'я?". Ще раз хочу сказати, що може бути історичний код Unix, який відхилив ім’я користувача, починаючи з числа. Я просто цього не бачив. Ранні таблиці паролів редагувалися вручну, я, звичайно, пам’ятаю, що часто робив це, навіть на початку 90-х.
Щодо того, чому воно зберігається, я цитую stroustrup, C ++ 11FAQ, коли будуть доступні нові стандартні бібліотеки?
Щоб зробити цю проблему складніше, пам’ятайте, що усунути старі функції неможливо, навіть якщо комітет погодиться, що вони погані: досвід показує, що користувачі змушують кожного виконавця надавати надалі застарілі та заборонені функції під комутаторами сумісності (або за замовчуванням) протягом десятиліть.