Ed *_*ber 49 linux user-accounts
我想创建以域名命名的用户帐户。adduser 抱怨用户名需要匹配NAME_REGEX正则表达式。
adduser: Please enter a username matching the regular expression configured
via the NAME_REGEX configuration variable. Use the `--force-badname'
option to relax this check or reconfigure NAME_REGEX.
Run Code Online (Sandbox Code Playgroud)
我可以毫无怨言地使用 useradd 添加用户。是否有理由我不应该修改正则表达式以允许.,-和_?
哪些字符会导致问题并且不应该出现在用户名中?
这是默认值NAME_REGEX。
NAME_REGEX="^[a-z][-a-z0-9]*\$"
Run Code Online (Sandbox Code Playgroud)
Hop*_*00b 32
更具体地说,POSIX(“Unix 便携式操作系统接口”)标准(IEEE 标准 1003.1 2008)指出:
用于标识用户的字符串;另见用户数据库。为了在符合 POSIX.1-2017 的系统之间可移植,该值由可移植文件名字符集中的字符组成。该
<hyphen-minus>字符不应用作可移植用户名的第一个字符。
The set of characters from which portable filenames are constructed.
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
0 1 2 3 4 5 6 7 8 9 . _ -
Run Code Online (Sandbox Code Playgroud)
任何符合此标准的用户名都符合 POSIX 标准,并且应该是安全的。
ste*_*eha 29
我对您的建议是遵循默认 NAME_REGEX 推荐的标准。您实际上可以在 *NIX 下的用户名中放置几乎任何内容,但是您可能会遇到库代码做出假设的奇怪问题。案例:
http://blog.endpoint.com/2008/08/on-valid-unix-usernames-and-ones-sanity.html
我想问你:如果你去掉不寻常的标点符号,你是否有很多域名会相互冲突?例如,您是否同时拥有“QUALITY-ASSURANCE”和“QUALITYASSURANCE”作为域名?如果没有,您可以简单地采用去除异常字符并使用剩下的作为用户名的策略。
此外,您可以使用/etc/passwd 信息中GECOS 字段的“真实姓名”部分来存储原始的、未修改的域名,脚本可以很容易地提取它。
| 归档时间: |
|
| 查看次数: |
81475 次 |
| 最近记录: |