web-dev-qa-db-fra.com

useradd / usermod n'acceptant pas -c

Lorsque j'exécute la commande suivante:

Sudo usermod –c "Richard Tracy" dtracy 

J'obtiens l'erreur suivante:

Usage: usermod [options] LOGIN

Options:
  -c, --comment COMMENT         new value of the GECOS field
  -d, --home HOME_DIR           new home directory for the user account
  -e, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -f, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -g, --gid GROUP               force use GROUP as new primary group
  -G, --groups GROUPS           new list of supplementary GROUPS
  -a, --append                  append the user to the supplemental GROUPS
                                mentioned by the -G option without removing
                                him/her from other groups
  -h, --help                    display this help message and exit
  -l, --login NEW_LOGIN         new value of the login name
  -L, --lock                    lock the user account
  -m, --move-home               move contents of the home directory to the
                                new location (use only with -d)
  -o, --non-unique              allow using duplicate (non-unique) UID
  -p, --password PASSWORD       use encrypted password for the new password
  -R, --root CHROOT_DIR         directory to chroot into
  -s, --Shell SHELL             new login Shell for the user account
  -u, --uid UID                 new UID for the user account
  -U, --unlock                  unlock the user account
  -v, --add-subuids FIRST-LAST  add range of subordinate uids
  -V, --del-subuids FIRST-LAST  remove range of subordinate uids
  -w, --add-subgids FIRST-LAST  add range of subordinate gids
  -W, --del-subgids FIRST-LAST  remove range of subordinate gids
  -Z, --selinux-user SEUSER     new SELinux user mapping for the user account

Il indique que nous pouvons utiliser -c option, alors pourquoi ne l'accepte-t-il pas ma commande? Je constate également qu'en créant un utilisateur et en ayant -c dans la commande useradd, je reçois toujours le message ci-dessus et l'opération échoue.

Pour reproduire l'erreur ci-dessus, exécutez simplement Sudo useradd dtracy pour créer un utilisateur dtracy avec les valeurs par défaut, puis essayez de modifier la commande usermod ci-dessus.

3
Number945

La commande que vous avez exécutée contenait –c, Qui est un en-tiret suivi d'un c. Bien que les arguments d'option comme -c Soient souvent prononcés de manière informelle "tiret c", ils doivent en fait commencer par un tiret ASCII. C'est le même que le ASCII caractère moins (un nom pour ce caractère est "trait d'union-moins") mais différent des autres caractères de tiret Unicode comme le tiret en et le tiret em.

Les commandes ne donnent aucune signification particulière à ces caractères de tiret, donc si un argument -c Spécifie l'option courte c, un argument –c Ne spécifie aucune option. Vous exécutiez en fait usermod avec trois arguments sans option, ce qui n'est pas l'une des syntaxes qu'il accepte, il a donc imprimé son message d'aide.

La raison pour laquelle les gens finissent par taper des tirets en lieu et place des tirets dans les commandes est - eh bien, personne ne le fait. Au lieu de cela, certains sites Web convertissent les tirets en tirets . Ainsi, lorsqu'une commande est copiée à partir d'une page d'un tel site Web et collée dans un terminal, elle contient à tort un tiret en au lieu d'un trait d'union. Cela peut également se produire si l'on utilise un programme comme LibreOffice pour stocker une liste de commandes (sans désactiver la mise en forme automatique).

Des problèmes similaires qui surviennent souvent dans la pratique à partir d'un tel texte mutilé incluent l'insertion d'espaces supplémentaires près de la ponctuation (très mauvais dans les commandes rm -r!), Le remplacement des guillemets droits par des guillemets bouclés et la disparition du texte entre un < Et un caractère > Correspondant.

La commande que vous vouliez exécuter, Sudo usermod -c "Richard Tracy" dtracy, Fonctionne très bien.

6
Eliah Kagan