UNIX 用户名中连字符的可用性

UNIX 用户名中连字符的可用性

据说在UNIX等类似系统中,除了拉丁字符、数字和下划线之外,我们还可以使用连字符作为用户名。另一方面,连字符在许多编程语言中用作运算符。它们彼此兼容吗?

我想知道用户名中的连字符有时是否会被视为减号运算符并导致某些程序代码中出现意外行为。如果发生这种情况,我会在用户名中使用下划线作为分隔符。

提前谢谢你的帮助。

答案1

另一方面,连字符在很多编程语言中用作运算符。

真的。然而,很少有(没有?)语言解释文字字符串并盲目地在其中执行操作。如果是这样的话,我们应该更害怕用户名被视为方法名!问题在于开发人员假设了一组有限的有效字符。

如果有帮助的话,Debian/etc/adduser.conf列出了用户名中允许使用的字符:字母、数字、连字符和下划线。

$ tail /etc/adduser.conf
[snip]

# check user and group names also against this regular expression.
#NAME_REGEX="^[a-z][-a-z0-9_]*\$"

因此,至少有一个主要发行版支持您。前进。

相关内容