Có một lý do kỹ thuật tại sao? Đây có phải là một tạo tác từ những ngày đầu của Linux hoặc Unix và nếu có thì tại sao nó vẫn tồn tại?
Tôi không thể nghĩ ra một lý do kỹ thuật - trong lịch sử, đó chỉ là ASCII. Làm thế nào nó được đọc và sau đó gõ vào tay của lập trình viên.
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];
}
Vì tôi đã dành thời gian duyệt các trang hướng dẫn lưu trữ (ví dụ: 1BSD là Phân phối Phần mềm Berkeley đầu tiên của Bill Joy ), tôi không thấy gì chỉ định tên người dùng. Điều đó không có nghĩa là nó không tồn tại, nhưng tôi chưa thấy nó.
Vì vậy, sau đó chúng ta còn lại với bối cảnh lịch sử của con người. Quay lại khi tôi bắt đầu công nghệ vào năm 1980, chúng tôi luôn sử dụng tên thật của mình để đăng nhập. Thường là tên đầy đủ đầu tiên và cuối cùng trừ khi có một số giới hạn chiều dài. Điều này rất quan trọng vì tên đăng nhập của bạn đã được sử dụng làm địa chỉ email của bạn. Không ai trở lại sau đó gửi email đó là ẩn danh. Tất nhiên phải có một số ngoại lệ, tôi không nhớ chúng. Nhìn chung, tôi tin rằng đây là trường hợp.
Và theo rfc5321 # page-63, không có bất kỳ hạn chế nào đối với việc "tên" email bắt đầu bằng một số. gmail sẽ tạo tất cả tên người dùng số. (lấy ngay bây giờ, họ đang đi nhanh).
Vì vậy, nếu có bất kỳ mã nào từ chối tên người dùng bắt đầu bằng [0-9], thì có lẽ nó đã xuất hiện sau đó với một số lập trình viên nghĩ rằng "tại sao bạn lại có một số làm tên?". Một lần nữa, tôi phải nói rằng rất có thể có mã unix lịch sử đã từ chối tên người dùng bắt đầu bằng một số. Tôi chỉ không nhìn thấy nó. Các bảng mật khẩu ban đầu được chỉnh sửa bằng tay, tôi chắc chắn nhớ thường xuyên làm điều đó, ngay cả trong những năm đầu thập niên 90.
Theo như lý do tại sao nó vẫn tồn tại, tôi sẽ trích dẫn stroustrup, C ++ 11FAQ, Khi nào các thư viện tiêu chuẩn mới sẽ có sẵn?
Để làm cho vấn đề trở nên khó khăn hơn, hãy nhớ rằng không thể loại bỏ các tính năng cũ hơn, ngay cả khi ủy ban đồng ý rằng chúng là xấu: kinh nghiệm cho thấy rằng người dùng buộc mọi người triển khai tiếp tục cung cấp các tính năng bị từ chối và bị cấm theo các công tắc tương thích (hoặc theo mặc định) trong nhiều thập kỷ.