it-swarm.com.de

Welche Zeichen sollte ich in Benutzernamen unter Linux verwenden oder nicht?

Ich möchte Benutzerkonten erstellen, die nach einem Domainnamen benannt sind. adduser beschwert sich, dass die Benutzernamen mit dem regulären Ausdruck NAME_REGEX übereinstimmen müssen.

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.

Ich kann die Benutzer mit useradd ohne Beanstandung hinzufügen. Gibt es einen Grund, warum ich den regulären Ausdruck nicht ändern sollte, um ., - Und _ Zuzulassen?

Welche Zeichen verursachen Probleme und sollten in Benutzernamen nicht erlaubt sein?

Dies ist die Standardeinstellung NAME_REGEX.

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

Mein Rat an Sie ist, den vom Standard NAME_REGEX empfohlenen Standard zu befolgen. Sie können tatsächlich fast alles in einen Benutzernamen unter * NIX einfügen, aber es können seltsame Probleme mit dem Bibliothekscode auftreten, die Annahmen treffen. Ein typisches Beispiel:

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

Meine Frage an Sie: Haben Sie viele Domain-Namen, die miteinander kollidieren würden, wenn Sie die ungewöhnliche Interpunktion entfernen würden? Haben Sie beispielsweise sowohl "QUALITY-ASSURANCE" als auch QUALITYASSURANCE "als Domain-Namen? Wenn nicht, können Sie einfach eine Richtlinie anwenden, bei der die ungewöhnlichen Zeichen entfernt und die verbleibenden Zeichen als Benutzername verwendet werden.

Sie können auch den Abschnitt "Realer Name" des GECOS-Felds in den Informationen/etc/passwd verwenden, um den ursprünglichen, unveränderten Domainnamen zu speichern, und Skripte können ihn ziemlich einfach extrahieren.

27
steveha

Insbesondere heißt es im Standard POSIX ("Portable Operating System Interface for Unix") (IEEE Standard 1003.1 2008) :


3.431 Benutzername

Eine Zeichenfolge, mit der ein Benutzer identifiziert wird. Siehe auch Benutzerdatenbank. Um systemübergreifend gemäß POSIX.1-2008 portierbar zu sein, besteht der Wert aus Zeichen aus dem Zeichensatz für portable Dateinamen. Das <hyphen> Zeichen sollten nicht als erstes Zeichen eines tragbaren Benutzernamens verwendet werden.


3.278 Zeichensatz für tragbare Dateinamen

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 . _ -

Jeder Benutzername, der diesem Standard entspricht, ist POSIX-konform und sollte sicher sein.

25
HopelessN00b

Aus dem NAME_REGEX kann abgeleitet werden, dass alles außer a bis z in Groß- und Kleinbuchstaben und die Zahlen 0 bis 9 schlecht wären.

1
wzzrd