Je suis un assistant de recherche dans un laboratoire de neuroscience complètement nouveau en programmation. J'essaie juste de créer un nom d'utilisateur dans le système ubuntu que j'ai téléchargé pour exécuter un programme d'analyse par IRM pour quelqu'un d'autre. Et je ne comprends même pas ce que signifie cette commande de base. Je sais que regex signifie "expression régulière" mais quelqu'un pourrait-il me dire quelle serait une entrée acceptable si je veux que mon nom d'utilisateur soit "Icymoguls," ou au moins me diriger vers un tutoriel ? J'ai appris sur /, ~, cd et ls dans une vidéo d'introduction mais je ne sais rien d'autre. Merci
Réponses
Trop de publicités?L'erreur de regex que vous voyez signifie essentiellement que le nom d'utilisateur que vous avez essayé de définir ne respecte pas les "règles" que votre système a définies pour les caractères pouvant figurer dans les noms d'utilisateur. Par défaut, Ubuntu n'autorise pas les lettres majuscules dans les noms d'utilisateur. Le nom d'utilisateur que vous avez fourni, "Icymoguls", comporte une majuscule au début et Ubuntu ne l'acceptera donc pas.
Ubuntu n'accepte que des noms d'utilisateur respectant les règles suivantes :
- Doit commencer par une lettre minuscule
- Ne peut contenir que des lettres minuscules, un tiret bas (_) et un tiret (-)
- Peut éventuellement se terminer par un signe dollar ($)
Une expression régulière est simplement une chaîne qui montre ce qui est autorisé et ce qui ne l'est pas dans une autre chaîne. Lors de la création d'un nouvel utilisateur, Ubuntu vérifie les noms d'utilisateur potentiels par rapport à son expression régulière intégrée pour les noms d'utilisateur (qui est ^[a-z][-a-z0-9_]*\$
au cas où vous seriez curieux !).
Il semble qu'il y a une raison derrière cette limitation.
Si vous essayez d'exécuter un service systemd pour des scripts, il peut démarrer en tant que root et non en tant qu'utilisateur. Cela est dû au fait que systemd ne reconnaît pas l'utilisateur avec un point (par exemple, un nom d'utilisateur de domaine.com) comme un utilisateur valide et exécute le service en tant que root à la place. Cela peut déjà être corrigé du côté de systemd, mais cela comporte encore un risque.
Avoir des points dans le nom d'utilisateur crée également des problèmes avec les scripts utilisant chown, qui accepte toujours des points comme séparateur entre le nom d'utilisateur et le nom de groupe. Si chown accepte toujours des points, il y aura des scripts utilisant cette notation qui se casseront si un nom d'utilisateur contient un point.
Cependant, vous pouvez modifier /etc/adduser.conf
et modifier l'expression régulière ou utiliser directement la commande useradd
, mais vous serez alors responsable de créer le drapeau home -m
et de fournir un skelleton -k SKEL_DIR
et de gérer tous les groupes manuellement.