CentOS 7 用户名中允许使用有效的特殊字符吗?

CentOS 7 用户名中允许使用有效的特殊字符吗?

我试图弄清楚 CentOS 7 在创建用户帐户时如何识别命名约定中的有效字符。

我正在使用 useradd 来确认我对 CentOS 认为用户名中的有效字符的理解...令我惊讶的是 useradd 命令接受了“_”和“.”...这让我想知道哪里有效/无效CentOS中建立字符

CentOS 中的 useradd 手册页没有提到有效字符...谷歌搜索说这是用 NAME_REGEX 完成的(至少对于 ubuntu)...并且让我在 adduser.conf 文件中寻找它...这确实CentOS 7 中不存在...我无法在 google 上找到有关此问题的 CentOS/Red Hat 特定来源...但我也查看了 /etc/login.defs 和 /etc/default/useradd没有运气

谁能指导我了解 CentOS 中的机制吗?

答案1

注意useradd可能比实际有效的用户名更具限制性。关于什么是有效用户名的规则也可能改变通过 PAM 和 nsswitch 配置设置。

POSIX标准表示用户名必须来自“可移植文件名字符集”,但第一个字符不能是连字符。

可移植文件名字符集是字符 AZ az 0-9 。 - _

请注意,这意味着根据此标准,“1337”之类的用户名是有效的用户名,这可能会在其他地方引起问题。

因此,为了安全起见,我会使用 [A-Za-z][A-Za-z0-9._-]+ 等模式

相关内容