На протяжении всей моей скромной карьеры в ИТ я обычно видел, что длина имени пользователя ограничена (обычно до 8 символов). Это происходит в различных системах, включая Active Directory и приложения баз данных.
Есть причина для этого? Есть ли лучшие практики в отношении создания имени пользователя?
user-accounts
Geordan
источник
источник
Ответы:
Это ограничение унаследованных систем Unix, в частности службы каталогов NIS . Обычно это ограничение действует только в том случае, если организация пытается поддерживать согласованность имен пользователей во всех приложениях (что, как правило, является хорошей идеей).
источник
Основной проблемой, с которой я недавно столкнулся, был ps в Solaris (10), он отключает 9-й символ +, так что, например, если вам нужно grep для имени пользователя, оно не будет совпадать.
Если вы выполните ls -l для каталога с файлами, принадлежащими этому пользователю, столбцы будут выровнены.
По сути, вам нужно с осторожностью относиться к любому инструменту, который имеет дело с именами для входа, а не только с UID. Сюда могут входить вещи, которые читаются или записываются в файлы журналов или базы данных, или используются выходные данные инструментов, таких как last, who, finger, ls, ps и т. Д.
Быстрый Google обнаружил эту страницу:
http://fixunix.com/sun/113647-username-lenght-more-then-8-characters.html
Что добавляет еще несколько причин.
Что касается передовых методов создания имени пользователя, могут возникнуть сложности при использовании имен входа в столицах, а не в нижнем регистре, поэтому этого также следует избегать.
Когда некоторые (более старые) системы, когда видят логин только в заглавных буквах, они услужливо по умолчанию предполагают, что терминал пользователя не поддерживает строчные буквы, поэтому установите ВСЕ в заглавные буквы (что может помешать вводу пароля и возможности ввода Команды Unix после входа в систему!)
Изменить (16/04/2019):
Я только что заметил на RHEL 7.5, что вывод ps тоже не очень приятный:
Он усекает имя пользователя с помощью «+», что бесполезно, если вы не знаете, каким пользователем он будет, и означает, что вы не можете полагаться на вывод ps, например, как на вход в скрипт, который должен знать, кто владеет процессом.
источник