用户名标准的最佳做法:避免问题


59

我有兴趣了解人们使用标准用户名的经历。我一直到过使用{firstInitial} {lastname}的地方(有时有长度限制)。现在,我有一些想要{firstname}。{lastname}的用户 -现在看来,句号可能会引起问题。

特别:

  • 在所有用途之间保持兼容性的最佳用户名长度限制是多少?
  • 应避免使用哪些字符?

更新:我之所以没有提及细节,是因为我想变得足够笼统,以应付将来可能发生的任何事情。但是,这可能太笼统了(可能发生任何事情,对吧?)。

这是我们的环境:Ubuntu Server Lucid Lynx 10.04 LTS,Red Hat Enterprise Linux 5.6及更高版本,Windows Server 2003和Windows 2000 Server(在Windows 2000纯模式下具有Active Directory),用于邮件的Zimbra 7.x和附近的OpenLDAP未来。

更新:我应该提到(出于完整性考虑)我看到了这个问题(尽管它没有回答我提出的问题)以及这个网络帖子,两者都非常有用。


4
您没有提到操作系统/应用程序。您是否想让它过于笼统而不能应用于任何OS / app?
哈立德2012年

13
我们的80,000公司使用{firstInitial} {lastname}作为登录名和电子邮件地址的标准。托马斯·沃茨(Thomas Watts)先生的愤怒呼叫使我们改变了局面,他的电子邮件被防火墙阻止。足够的人会出现问题。
MaskedPlant 2012年

13
@MaskedPlant:我喜欢有趣的用户名。我们曾经有一个客户使用IBM RACFID标准,即“姓氏的前四个字符,首字母缩写,中间字母缩写”。可以想象,“苏珊·彭宁顿”对此并不满意。“ Mary Utt”也不会对另一个站点的名字首字母/姓氏感到满意...>微笑<
Evan Anderson

4
{first first} {last name}似乎是最常见的,对于中小型企业来说相对安全。拨打电话和进行B2B通话时,使销售部门的生活变得更加容易,以便有一个通用的约定。
乍得·哈里森

2
我想起了迪尔伯特地带:search.dilbert.com/comic/Utthead
KeithS 2012年

Answers:


65

对于大型身份管理系统试图将异构系统粘合在一起,这是一个长期的问题。始终,您将被限制为最低的公分母,由于数据中心中某些地方(可能是传统的)类似Unix的系统,该公分母通常都是8个字符的ASCII-字母数字限制。那些花哨的现代系统可以采用任意长度的UTF8用户名,不太可能被使用。

我在高等教育机构度过了7年的时光,我们每年必须为8千个新学生找出8个字符的用户名。到我离开时,我们已经设法为15年的学生提供了唯一的名字。smitj510先生,这可以做到

使您的生活变得无比轻松的事情:

  • 找出最低公分母是什么,这要求分析身份管理系统的每个部分以发现极限。
    • 旧的Solaris 7系统强制使用8个字符的限制。
    • 使用身份数据的关键应用程序有其自己的限制,您必须考虑这些限制。
      • 也许他们希望LDAP中的用户数据符合唯一的“标准”。
      • 他们使用的身份验证数据库也许只能处理某些格式化的数据。
  • 有一个数据库表,其中包含一个真实标识符(8个字符的帐户名)的列表,其链接/字段列出了备用ID firstname.lastname或其他可能出现的东西。
    • 现成的软件可以做一些非常怪异和IDM不友好的事情,例如使用数字ID作为帐户名,或基于配置文件数据自动生成帐户ID。所有这些都进入数据库表。
    • 这也可以帮助名称中带有非[az | 0-9]字符的人(例如Harry O'Neil)或非ASCII字符的人(例如Alžbêta)。
  • 在建立帐户同步过程时,请利用该数据库表以确保正确的帐户获得正确的更新。名称更改(婚姻,离婚等)时,您希望这些更改传播到正确的地方。
    • 配置实际的身份数据库本身以防止在可能的情况下进行本地更改,并在不可能的情况下强烈劝阻业务流程。尽一切可能依靠中央帐户同步过程。
  • 尽可能利用别名系统,例如在电子邮件中。
  • 考虑8位字符的ID是不可变的,因为更改该字段会在IT人员中引发很多麻烦,因为必须重新创建帐户。
    • 由于婚姻/离婚/法院命令会随着时间的推移更改名称数据,因此这表明不是从名称数据派生的帐户ID 。
  • 因为总是会有一些例外,所以要有一个例外的系统。
    • 可怕的离婚和每次生成的名称数据生成的8字符UID都会带来痛苦的回忆?对您的用户友好,并允许进行这些更改的机制,但请保持安静。
  • 在允许的情况下,尽力允许多个用户名登录系统
    • 有些人喜欢他们的8个字符的uid,其他人喜欢firstname.lastname@example.com。保持灵活性,结交朋友。
    • 有时,这需要使用诸如CAS框架来使基于Web的系统领先。您会惊讶于有多少现成的系统可以支持这样的SSO框架,因此不要气our。

也就是说,将其视为数据库问题,因为这就是问题所在。选择一个主键以最大程度地与您的系统兼容(可能是8个字符),建立一个查找表以使系统将本地ID转换为主键,并设计数据同步系统以处理各种ID。


4
神奇而精心编写的(有启发性的)答案!
2012年

12
+1用于不从名称数据中获取用户名。由于结婚/离婚而不得不重命名主目录很烦人。您关于“怪异人物”的陈述使我想到了小鲍比餐桌和我以前的高中的看门人,我确信他们在网上购买东西时会遇到麻烦,罗伯特·诺尔先生(我不告诉你)。
埃文·安德森

我喜欢“有一个例外系统,因为总会有一些例外。” 部分。这绝对是真的。虽然我看不出如何smithj510使八个字符的用户名有效;)
scherand 2012年

2
+1用于解决婚姻和离婚问题。这引起了很多问题。许多公司的行为都像员工是第一个必须更改其姓名的人一样。
mhoran_psprep 2012年

5
@mhoran_psprep如果你足够大,你会找人做了法律第一更名。在这种情况下,许多为姓氏更改设置的系统都会中断。
sysadmin1138

26

您的问题特别是:

  • 在所有用途之间保持兼容性的最佳用户名长度限制是多少?

没有这样的事情。只有“您的”用途,其中可能包括您将来的用途。我们不知道那是什么。

  • 应避免使用哪些字符?

这将取决于您要处理的计算机系统。以Windows为例,用户名中的句点没有问题。实际上,UPN的格式类似于电子邮件地址,允许使用一段时间。

我的进一步想法:

  • 不要让您的用户询问-告诉他们标准是什么,并向要求要求更改标准的企业(而非个人用户)开放。
  • 一定要在标准中制定“例外政策”,这样您就可以帮助贫困的Susan Penington和Mary Utt(来自上面的评论),而不必让副主席介入。使IT看起来不错,对吗?

15
最后的评论值得+50 :)
2012年

2
提出明智的例外至关重要。多年来,我们有许多例外情况:多个具有相同名字和姓氏的用户,具有非常长的姓氏的用户,具有相同名字和姓氏的用户,来自中国和HR的访问者的名字都乱七八糟,他的名字拼写为“ Raymond Luxury-Yacht”,但发音为“ Throatwobbler Mangrove” ...
Ward

BobHope,BobHope01,BobHope3,BobHopeAccounting,BobHopeHartford
mfinni 2012年

2
是的,例外!非洲的某些国家甚至不知道“名字”和“姓氏”的概念:父亲的名字成为儿子的姓氏,儿子获得了新的名字……
Konerak 2012年

2
我建议您不仅要拥有例外政策,还要在最初的帐户创建时为可能从中受益的用户分配ID。“我的用户名太糟糕了”不应该成为新员工在第一天就需要担心的事情。对标准政策的解释,加上承认它可能不适合个人以及建议的替代方法,压力要小得多。甚至可以从HR获取联系信息,因此您可以在他们的第一天之前解决问题。
Dan Neely 2012年

20

我的经验是,对于一个足够大的企业而言,您做出的任何决定总是会遇到问题。即使今天可以使用,明天仍然会实施您的系统,该系统存在先前标准的问题(长度问题,字符问题等)。

确保确定对Firstname.Lastname的推送是否与电子邮件有关,而不一定与登录名有关。我很难相信用户在登录时想输入“ John.Smith”而不是“ jsmith”,但是我对他想要“ John.Smith@company.com”的想法大为推崇。 ”作为他的电子邮件地址。正如@Mfinni指出的那样,用户始终可以选择具有多个电子邮件别名,转发等功能。仅让用户知道存在将其用户名与电子邮件地址分离的选项就可以更改请求的动态。


1
并不是说用户只能拥有一个电子邮件地址。总有别名和转发。
mfinni 2012年

3
我们的用户UPN和主要电子邮件地址在任何时候都是相同的,因此我们只是告诉我们的用户,无论他们尝试登录到何处,都使用他们的电子邮件地址进行登录。 netbios。
pauska

我的经验是,对于一个足够大的企业而言,您做出的任何决定总是会遇到问题。即使今天工作正常,明天仍然会存在问题。”-我们可以将其称为“安德森定律”吗?
Freiheit 2012年

@Freiheit:我的说法不配其自己的名字...>微笑<它实际上只是由墨菲定律在IT领域的普遍应用引起的。墨菲(Murphy)居住在IT中……
埃文·安德森

1
希望我现在没有社区Wiki ...>微笑<
Evan Anderson,

13

对于Unix和Linux系统,{firstInitial} {lastname} 显然是理想的选择。

...

出于与该帐户相关联的名称中显而易见的原因。


3
我不同意,但是您能解释为什么这么说吗?
mfinni 2012年

实际上,我不同意。在上一份工作中,在AIX系统上,我们被限制为8个字符。因此,mfinnigan是不可能的。我必须是mfinniga。因此,请扩大您的答案。
mfinni 2012年

2
这是主观答案,没有任何解释。可以很容易地说,对于UNIX,{firstInitial} {middleInitial} {lastInitial}是“理想的”,因为这是UNIX的起点,并且这就是多年来的方式(直到拥有数千名拥有用户名的员工的公司开始使用它) ...)。
2012年

10
嗯,我想这可能是个玩笑。他的名字叫“ root”,是Unix系统上的重要用户。
Jeffrey

4
... R oot Oot ... 哎呀滑稽!不知道我怎么想念它。
2012年

7

在跨平台设置命名标准时要注意的一件事是Linux(可能还有其他Unix OS)中ps中的一个特殊外观问题。您可能会或可能不会在乎这一点(但是这可能会给一个不期望的人感到震惊……我让安全人员对这一点抽搐了)。

UID列最多只能显示一个用户名的8个字符。如果用户名超过8个字符,它将切换为打印实际的数字UID。您可以通过使用包含USER字段的自定义ps列格式来解决此问题,但是只有USER是最后一列时(根据我的经验测试)。

大多数人可能对此并不在意,但是如果您正在对ps输出进行某种处理并期望出现真实的用户名,则应谨慎使用名称长度(否则,您将在代码中加入hacks)使ps做正确的事)。

例如:

这是完整格式列表的默认列格式。请注意,我的uid是数字格式,因为我的用户名> 8个字符。

[tcampbell@tst-agg1 ~]$ ps -f
  UID        PID  PPID  C STIME TTY          TIME CMD
 2108      1368  1367  0 Jan10 pts/3    00:00:00 -bash
 2108     22303  1368  0 12:07 pts/3    00:00:00 ps -f

让我们使用自定义列格式重新创建它。请注意,我已经添加了USER列。请注意,它也是数字格式。

[tcampbell@tst-agg1 ~]$ ps -o uid,user,c,stime,tty,time,cmd    
  UID USER      C STIME TT           TIME CMD
 2108 2108      0 Jan10 pts/3    00:00:00 -bash
 2108 2108      0 12:05 pts/3    00:00:00 ps -o uid,user,c,stime,tty,time,cmd

让我们将USER移至行尾。它被扩展为“正确”的输出。

[tcampbell@tst-agg1 ~]$ ps -o uid,user,c,stime,tty,time,cmd,user
  UID USER      C STIME TT           TIME CMD                         USER
 2108 2108      0 Jan10 pts/3    00:00:00 -bash                       tcampbell
 2108 2108      0 12:05 pts/3    00:00:00 ps -o uid,user,c,stime,tty, tcampbell

但是,一旦我们在列列表的末尾添加了新内容,它就会恢复为数字形式。

[tcampbell@tst-agg1 ~]$ ps -o uid,user,c,stime,tty,time,cmd,user,pid
  UID USER      C STIME TT           TIME CMD                         USER       PID
 2108 2108      0 Jan10 pts/3    00:00:00 -bash                       2108      1368
 2108 2108      0 12:05 pts/3    00:00:00 ps -o uid,user,c,stime,tty, 2108     21756

您发现这适用于哪个操作系统?
mfinni 2012年

有趣!我一直想知道-为什么要使用数字。该last命令有一个相关的问题:它将其记录截断为8个字符。
2012年

编辑以反映我在谈论Linux。不知道我的原始编辑内容是如何消失的。
特拉维斯·坎贝尔

-1

[一些来自姓氏的信件] [一些来自姓氏的信件] [nnn]

foreg:如果名字是Bill Gates,则可以使用“ biga00 ”或bilgat000

如果下一个比尔·盖茨来,对他来说应该是“ biga01”或“ bilgat001”


-1

从操作,管理和维护(OAM)的角度来看,用户名需要轻松区分。但是,从业务角度来看,用户名(a / k / a电子邮件别名)必须易于他人记住或重新调用。

可以像这样:

  • first.last.index@domain
  • first(initial).last.index @ domain
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.