Gibt es einen technischen Grund dafür? Ist dies ein Artefakt aus den Anfängen von Linux oder Unix, und wenn ja, gibt es einen Grund, warum es so bleibt?
Ich kann mir keinen technischen Grund vorstellen - historisch gesehen ist es nur ASCII. Wie es eingelesen und dann getippt wird, liegt in den Händen des Programmierers.
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];
}
Da ich einige Zeit damit verbracht habe, Archiv-Manpages zu durchsuchen (zum Beispiel: 1BSD war Bill Joys erste Berkeley-Softwareverteilung ), habe ich nichts gesehen, das Benutzernamen angibt. Das heißt nicht, dass es nicht existiert, aber ich habe es nicht gesehen.
Wir bleiben also im historischen menschlichen Kontext. Als ich 1980 mit dem Technischen angefangen habe, haben wir immer unseren richtigen Namen für die Anmeldung verwendet. Normalerweise Vor- und Nachname, es sei denn, es gab eine Längenbeschränkung. Dies war wichtig, da Ihr Anmeldename als E-Mail-Adresse verwendet wurde. Damals schickte niemand eine anonyme E-Mail. Natürlich muss es einige Ausnahmen gegeben haben, ich erinnere mich nicht daran. Insgesamt glaube ich jedoch, dass dies der Fall ist.
Und laut der rfc5321 # page-63 gibt es keine Einschränkung, dass ein E-Mail- "Name" mit einer Ziffer beginnt. Google Mail erstellt alle numerischen Benutzernamen. (Hol es dir jetzt, sie gehen schnell).
Wenn es also einen Code gibt, der einen Benutzernamen abweist, der mit [0-9] beginnt, dann ist er wahrscheinlich später entstanden, als sich ein Programmierer dachte: "Warum hätten Sie eine Nummer als Namen?". Ich muss noch einmal sagen, dass es möglicherweise einen historischen Unix-Code gibt, der einen Benutzernamen abweist, der mit einer Zahl beginnt. Ich habe es einfach nicht gesehen. Die frühen Passworttabellen wurden von Hand bearbeitet, ich erinnere mich sicher, dass ich das auch in den frühen 90ern oft getan habe.
Woher kommt das? Ich zitiere stroustrup, C ++ 11FAQ. Wann werden die neuen Standardbibliotheken verfügbar sein?
Denken Sie daran, dass es nicht möglich ist, ältere Features zu entfernen, auch wenn das Komitee dies für schlecht hält: Die Erfahrung zeigt, dass Benutzer jeden Implementierer dazu zwingen, weiterhin veraltete und gesperrte Features unter Kompatibilitätsschaltern (oder standardmäßig) bereitzustellen. für Jahrzehnte.