为什么将用户名的最大长度限制为8个字符?


13

在整个IT生涯中,我通常会发现用户名长度受限制(通常为8个字符)。这在包括Active Directory和数据库应用程序在内的各种系统上都会发生。

是否有一个原因?是否有关于创建用户名的最佳实践?


1
这是一个很好的问题,但是每次看到“最佳实践”一词,我都会不寒而栗。没有这样的动物。
John Gardeniers 2010年

Answers:


14

这是旧版Unix系统的局限性,尤其是NIS目录服务。通常,如果组织尝试使用户名在所有应用程序中保持一致(通常是个好主意),则此限制才到位。


1
+1(最小公分母)引起了很多这些限制。AD可能支持256个字符的用户名,但是内核中的Solaris 7服务器将最大长度限制为8个字符。同样,密码长度也有相同的限制。
sysadmin1138

哦,嘿,我不时读的博客人。喂 :)
jgoldschrafe 2010年

1
在MSWindows系统上-继承自MSDOS文件名中8个字符的限制
symcbean 2010年

不,这已被删除-在Windows 95中。甚至Fat也获得了包括兼容模式在内的升级;)
TomTom,2012年

6

我最近遇到的主要问题是Solaris(10)上的ps,它关闭了第9个以上的字符,因此,例如,如果您需要grep输入不匹配的用户名。

$ sudo -u longusername ps -fu longusername
     UID   PID  PPID   C    STIME TTY         TIME CMD
longuser 14012 11985   0 09:58:39 pts/2       0:00 ps -fu longusername

如果在包含该用户文件的目录上执行ls -l,则列将不对齐。

$ ls -ld /export/home/l*
drwxr-xr-x   2 lauser   users        6 Mar 23 10:21 /export/home/lzuser
drwxr-xr-x   2 longusername users        6 May  4 10:02 /export/home/longusername
drwxr-xr-x   2 lzuser   users        6 Mar 12 11:21 /export/home/lzuser

基本上,您需要警惕任何用于处理登录名而不仅仅是UID的工具。其中可能包括读取或写入日志文件或数据库的内容,或者使用了诸如last,who,finger,ls,ps等工具的输出。

快速的Google开启了此页面:

http://fixunix.com/sun/113647-username-lenght-more-then-8-characters.html

这增加了更多原因。

关于创建用户名的最佳做法,使用大写而不是小写的登录名也会带来一些麻烦,因此也应避免这种情况。

当某些(较旧的)系统仅以大写字母登录时,默认情况下,它们会假定用户的终端不支持小写字母,因此请将EVERYTHING设置为大写字母(这样可以防止输入密码并能够键入登录后使用Unix命令!)

编辑(16/04/2019):

我刚刚在RHEL 7.5上注意到ps的输出也不能很好地播放:

$ ps -fulongusername
UID        PID  PPID  C STIME TTY          TIME CMD
longuse+  1230 27243  0 Apr13 pts/0    00:00:00 vim somescript.sh
longuse+  1701 27243  0 Apr05 pts/0    00:00:00 vim another-script.sh
longuse+  3116 27243  0 Apr12 pts/0    00:00:01 vim test_script.sh

它用“ +”截断用户名,如果您不熟悉它将是哪个用户,这将无济于事,并且意味着您不能依赖ps的输出,例如,作为需要知道谁的脚本的输入拥有一个过程。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.