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

sag*_*aga 23 login authentication case-sensitivity

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

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

jll*_*gre 17

就像主机名和域名一样,用户名并不是严格意义上的 Unix 事物,而是可以而且经常跨越更广泛的操作系统类型。

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

DNS 标准(请参阅RFC4343)明确表示主机名和域名不区分大小写。

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

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

由于这种不一致,我建议只对用户名和主机/域名使用小写字母,然后避免使用小写字母ssh ABC@SERVERNAME.DOMAIN.COM

  • 所以,我阅读 [POSIX 标准](http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_431) 的方式,因为它没有被指定为区分大小写或不敏感**和** 整个可移植文件名字符集都可用(包括大写和小写),这取决于实现。那是对的吗?话虽如此,是否有标准约定? (2认同)
  • @DougR。就 POSIX 而言,用户名取决于大小写。否则将指定不区分大小写。引用可移植文件名字符集时,区分大小写是隐式的。 (2认同)

les*_*ese 6

是的,它区分大小写。我不能带来技术信息,我刚刚测试过,想知道你为什么没有(?)

如您所见,我的本地机器是 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
Run Code Online (Sandbox Code Playgroud)

我尝试像这样连接到 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: 
Run Code Online (Sandbox Code Playgroud)

· 使用正确的用户名:

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 ~]# 
Run Code Online (Sandbox Code Playgroud)