![用户名中的字符“ä”会导致 Linux 系统出现错误吗?](https://linux22.com/image/17944/%E7%94%A8%E6%88%B7%E5%90%8D%E4%B8%AD%E7%9A%84%E5%AD%97%E7%AC%A6%E2%80%9C%C3%A4%E2%80%9D%E4%BC%9A%E5%AF%BC%E8%87%B4%20Linux%20%E7%B3%BB%E7%BB%9F%E5%87%BA%E7%8E%B0%E9%94%99%E8%AF%AF%E5%90%97%EF%BC%9F.png)
我想使用我的名字作为用户名,但它包含字符“ä”。我发现这个线程。
现在我明白了,为什么有些字符被禁用,但是“ä”呢?这个角色会引起什么问题吗?
为什么某些 Unicode 字符(ü、õ、ö、ä)在全名中使用时被禁用?
答案1
上一个现代的系统(具有完整的 Unicode 支持),这个不应该成为一个问题——强调“不应该”。正如该答案中引用的那样,
默认为
NAME_REGEX="^[a-z][-a-z0-9]*\$"
尽管这对于当前系统来说可能过于严格,但它使管理变得更加容易 - 就像“少了一件需要担心的事情”。请注意,用户名会在很多地方使用 - 例如,您的主目录可能采用以下形式/home/username
;大多数健全的文件系统都具有完整的 Unicode 支持,但与任何与计算机相关的事物一样,无法保证所有情况下的健全性。
请注意,系统使用的实际登录名(属于这些规则的范围)映射到 中的 UID /etc/passwd
,并且有“全名”,它是一个字符串(可以输入大多数有效字符,尽管有一个“非 ASCII”警告)。
该怎么做:在适用的情况下,我使用不带变音符号的名称(或罗马化的,如果是非拉丁脚本)作为用户名,并使用真实形式作为全名。 /etc/passwd 中的条目可能类似于以下内容:
martrang:x:1001:1001:Märt Rang,,,:/home/martrang:/bin/bash
答案2
通常不支持使用非 ASCII 登录名,这听起来会带来麻烦。虽然 UTF-8 正在成为事实上的标准编码,但仍然有很多人使用其他编码(尤其是在英语世界之外,人们长期以来一直在使用其他不兼容的 8 位或 16 位编码) )。例如,您可能会遇到尝试根据当前区域设置的编码解释您的用户名的应用程序,而不是(尝试)将其转换为当前区域设置的编码。您的登录名也是电子邮件地址的左侧部分,这更有可能导致问题,因为您依赖于您的邮件所经过的所有系统都支持和尊重您选择的编码。
登录名适用于计算机。在您的登录名中使用 ASCII。全名是为人类设计的。在您的全名中使用 UTF-8。
答案3
最后一个问题是最容易回答的:传统、实用性、简单性(对于开发人员)和可移植性(如果你想慈善),或者落后、不切实际(对于用户)、无知和不可移植性(如果你不想) t。US-ASCII是自古以来(对于年轻人而言,网络出现之前)几乎到处都在使用的字符集。
在许多许多应用程序中,除了您在英文键盘上可以看到的字符之外,根本没有内置支持字符(有时甚至不支持)。换句话说,该软件可能支持也可能不支持,您只能期待意想不到的情况。