Linux

我應該在 Linux 上的使用者名中使用或不使用哪些字元?

  • December 8, 2021

我想創建以域名命名的使用者帳戶。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.

我可以毫無怨言地使用 useradd 添加使用者。有沒有理由我不應該修改正則表達式來允許.,-_

哪些字元會導致問題並且不應在使用者名中使用?

這是預設設置NAME_REGEX

NAME_REGEX="^[a-z][-a-z0-9]*\$"

我對您的建議是遵循預設 NAME_REGEX 推薦的標準。實際上,您幾乎可以在 *NIX 下的使用者名中添加任何內容,但您可能會在使用做出假設的庫程式碼時遇到奇怪的問題。一個例子:

http://blog.endpoint.com/2008/08/on-valid-unix-usernames-and-ones-sanity.html

我的問題是:如果去掉不尋常的標點符號,您是否有很多域名會相互衝突?例如,您是否同時擁有“QUALITY-ASSURANCE”和“QUALITYASSURANCE”作為域名?如果沒有,您可以簡單地採用去除不尋常字元並使用剩餘內容作為使用者名的策略。

此外,您可以使用 /etc/passwd 資訊中GECOS 欄位的“真實姓名”部分來儲存原始的、未修改的域名,腳本可以很容易地提取它。

引用自:https://serverfault.com/questions/73084