Unix 中的用户名区分大小写吗?

Unix 中的用户名区分大小写吗?

不同于?ssh abc@servernamessh Abc@servername在 Unix 中用户名的大小写重要吗?

我的用户通过 LDAP 进行身份验证。

答案1

就像主机名和域名一样,用户名严格来说并不是 Unix 的东西,但可以而且经常跨越更广泛的操作系统类型。

它们是否区分大小写取决于用于指定它们的标准。

根据 DNS 标准,主机名和域名显然不区分大小写(请参阅RFC4343)。

存储在本地后端 (/etc/passwd) 或 Unix style one (NIS) 上的用户名不区分大小写POSIX 标准

存储在 LDAP 或 Active Directory 后端中的用户名将遵循使用的属性架构定义,uidcn它们通常存储用户名,具有不同的模式属性,前者不区分大小写,但后者区分大小写。这意味着Abcabc可能匹配或不匹配abc的条目,具体取决于 ldap 服务器配置。

由于这种不一致,我建议仅对用户名和主机/域名使用小写,然后避免这种粗鲁的做法。ssh [email protected]

答案2

是的,它区分大小写。我无法提供技术信息,我刚刚测试过,想知道为什么你没有(?)

我的本地机器是 linux mint,如你所见:

# cat /etc/*release
DISTRIB_ID=LinuxMint
DISTRIB_RELEASE=17.2
DISTRIB_CODENAME=rafaela
DISTRIB_DESCRIPTION="Linux Mint 17.2 Rafaela"
NAME="Ubuntu"
VERSION="14.04.3 LTS, Trusty Tahr"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 14.04.3 LTS"
VERSION_ID="14.04"
HOME_URL="http://www.ubuntu.com/"
SUPPORT_URL="http://help.ubuntu.com/"
BUG_REPORT_URL="http://bugs.launchpad.net/ubuntu/"
cat: /etc/upstream-release: Is a directory

我尝试像这样连接到 CentOS 服务器:

· 使用(错误的)大写用户名:

8D prova # ssh Root@agora-server
Root@agora-server's password: 
Permission denied, please try again.
Root@agora-server's password: 
Permission denied, please try again.
Root@agora-server's password: 

· 使用正确的用户名:

8D prova # ssh root@agora-server
root@agora-server's password: 
Last login: Fri Oct  2 01:50:13 2015 from 192.168.0.31
[root@agora-server ~]# 

答案3

对于本地帐户,用户名区分大小写。当您使用 LDAP 时,这取决于情况。我见过用户名区分大小写的情况(在连接到 LDAP 的 ZFS 设备上)以及无关紧要的情况,例如连接到 Windows AD 的 Solaris LDAP 客户端。

您应该/可以尝试的是通过发出 来查看您的系统是否正确使用 LDAP getent passwd <username>。使用此命令应该会为您提供包含指定用户的用户名、主目录和 shell 的记录。如果您没有看到此类记录,则 LDAP 配置不正确。

您应该在多个位置配置 LDAP,其中之一是:

/etc/nsswitch.conf

passwd: files ldap
group:  files ldap

您还需要检查 PAM 是否配置正确,也许最重要的步骤是验证 LDAP 客户端是否配置并正常工作。尝试使用类似ldapsearch检查 LDAP 是否可以查询的工具。

有多种可用的 LDAP 说明书,其中大多数取决于您使用的 Unix 版本和 LDAP 版本。如果您需要进一步帮助,请使用这些详细信息更新您的问题。还包括您的配置设置(当然没有密码),这可以帮助论坛成员分析您的特定问题。

答案4

用户名绝对区分大小写。您可以通过添加两个具有相似名称的用户来轻松测试这一点:

~ # useradd foobar
~ # useradd fooBar
~ # grep ^foo /etc/passwd
foobar:x:1001:1001::/home/foobar:/bin/sh
fooBar:x:1002:1002::/home/fooBar:/bin/sh

这个问题/答案显示如何补偿尝试使用根据 LDAP 服务器具有“错误”大小写的用户名登录的用户。但请注意,只有当用户名全部列为小写时,这才有效(或者如果您愿意,您可以将它们全部设为大写)。

相关内容