Meu conselho para você é seguir o padrão recomendado pelo padrão NAME_REGEX. Você pode colocar praticamente qualquer coisa em um nome de usuário em * NIX, mas você pode encontrar problemas estranhos com código de biblioteca que faz suposições. Caso em questão:
Minha pergunta para você: você tem muitos nomes de domínio que colidiriam um com o outro se você tirasse a pontuação incomum? Por exemplo, você tem "QUALITY-ASSURANCE" e QUALITYASSURANCE "como nomes de domínio? Se não, você pode simplesmente adotar uma política de remover os caracteres incomuns e usar o que resta como nome de usuário.
Além disso, você pode usar a seção "nome real" do campo GECOS nas informações do / etc / passwd para guarde o nome domaain original e não modificado, e os scripts podem extraí-lo facilmente.