在我卑微的 IT 职业生涯中,我通常看到用户名长度受到限制(通常为 8 个字符)。这发生在各种系统上,包括 Active Directory 和数据库应用程序。
是否有一个原因?是否有关于用户名创建的最佳实践?
我最近看到的主要问题是 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
Run Code Online (Sandbox Code Playgroud)
如果您在包含属于该用户的文件的目录上执行 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
Run Code Online (Sandbox Code Playgroud)
基本上,您需要警惕任何处理登录名而不仅仅是 UID 的工具。这可能包括从日志文件或数据库中读取或写入的内容,或者使用 last、who、finger、ls、ps 等工具的输出。
一个快速的谷歌打开了这个页面:
http://fixunix.com/sun/113647-username-lenght-more-then-8-characters.html
这又增加了一些原因。
关于创建用户名的最佳实践,使用大写而不是小写登录也可能会带来复杂性,因此也应该避免这种情况。
当一些(较旧的)系统,当看到只有大写的登录时,他们默认假设用户的终端不支持小写,所以将所有内容设置为大写(这可以防止输入密码并能够输入登录后的 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
Run Code Online (Sandbox Code Playgroud)
它用“+”截断用户名,如果您不熟悉它将是哪个用户,这没有帮助,这意味着您不能依赖 ps 的输出,例如作为需要知道谁的脚本的输入拥有一个进程。
| 归档时间: |
|
| 查看次数: |
20714 次 |
| 最近记录: |