Я хочу создать учетные записи пользователей, названные по имени домена. 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
Мой вопрос к вам: много ли у вас доменных имен, которые будут конфликтовать друг с другом, если вы уберете необычную пунктуацию? Например, есть ли у вас в качестве доменных имен «ОБЕСПЕЧЕНИЕ КАЧЕСТВА» и «ОБЕСПЕЧЕНИЕ КАЧЕСТВА»? Если нет, вы можете просто принять политику удаления необычных символов и использования оставшихся в качестве имени пользователя.
Кроме того, вы можете использовать раздел «Настоящее имя» в Поле GECOS в информации / etc / passwd, чтобы сохранить исходное немодифицированное доменное имя, и сценарии могут легко его извлечь.
В частности, Стандарт POSIX («Портативный интерфейс операционной системы для Unix») (стандарт IEEE 1003.1 2008) утверждает:
Строка, которая используется для идентификации пользователя; см. также базу данных пользователей. Для переноса между системами, соответствующими POSIX.1-2017, значение состоит из символов из набора символов переносимого имени файла. В
<hyphen-minus>
не следует использовать в качестве первого символа переносимого имени пользователя.
3.282 Набор символов переносимого имени файла
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 . _ -
Любое имя пользователя, соответствующее этому стандарту, соответствует стандарту POSIX и должно быть безопасным.
Из NAME_REGEX можно сделать вывод, что все, кроме букв от a до z в верхнем и нижнем регистре и числа от 0 до 9, будет плохим.