Я хочу создать учетные записи пользователей, названные в честь доменного имени. 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]*\$"
linux
user-accounts
Эд Хабер
источник
источник
NAME_REGEX
уже принимает,-
пока это не первый символ..
? Рассмотрим пользователя с именем.
или..
. Затемrm
этот пользователь по имени..
.rm
это не команда, используемая при удалении пользователя. Я согласен, что..
это не разумное имя по тем же причинам, ноrm
не является одним из них.Ответы:
Я советую вам следовать стандарту, рекомендованному по умолчанию NAME_REGEX. На самом деле вы можете поместить почти все в имя пользователя в * NIX, но вы можете столкнуться со странными проблемами с библиотечным кодом, который делает предположения. Дело в точке:
http://blog.endpoint.com/2008/08/on-valid-unix-usernames-and-ones-sanity.html
Мой вопрос к вам: у вас есть много доменных имен, которые столкнулись бы друг с другом, если бы вы удалили необычную пунктуацию? Например, есть ли у вас как «QUALITY-ASSURANCE», так и QUALITYASSURANCE »в качестве доменных имен? Если нет, вы можете просто принять политику удаления необычных символов и использовать то, что осталось в качестве имени пользователя.
Кроме того, вы можете использовать раздел «настоящее имя» поля GECOS в информации / etc / passwd для хранения исходного неизмененного имени домена, а сценарии могут извлечь его довольно легко.
источник
В частности, стандарт POSIX («Интерфейс переносимой операционной системы для Unix») (Стандарт IEEE 1003.1 2008) гласит :
3.431 Имя пользователя
3.278 Портативный набор символов имени файла
Любое имя пользователя, соответствующее этому стандарту, является POSIX-совместимым и должно быть безопасным.
источник
ALL UPPERCASE CHARACTERS
.)Из NAME_REGEX можно сделать вывод, что все, кроме a - z в верхнем и нижнем регистре и цифры от 0 до 9, будет плохим.
источник
-
также принимается (только не в качестве первого символа.) Также обратите внимание, что по умолчанию заглавные буквы не принимаются (g
флаг отсутствует и неA-Z
входит вNAME_REGEX
регулярное выражение, предоставленное OP.NAME_REGEX="^[a-z][-a-z0-9]*\$"