useradd / usermod не принимает -c

Когда я запускаю следующую команду:

sudo usermod –c "Richard Tracy" dtracy 

я получаю следующую ошибку:

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

В нем говорится, что мы можем использовать опцию -c, тогда почему это не так? принимая это моя команда? Я также вижу, что при создании пользователя и наличии -c в команде useradd, я все равно получаю вышеуказанное сообщение, и операция завершается неудачей.

Чтобы воспроизвести вышеуказанную ошибку, просто запустите sudo useradd dtracy, чтобы создать пользователя dtracy со значениями по умолчанию, а затем попытайтесь изменить с помощью вышеуказанной команды usermod.

3
задан 4 September 2019 в 09:50

1 ответ

команда Вы бежали содержавший –c, который является короткое тире , сопровождаемое c. , Хотя аргументы выбора как -c часто неофициально объявляются «чертой c», они должны на самом деле начать с символа дефиса ASCII. Это совпадает с ASCII минус характер (одно название этого характера - «дефис - минус»), но отличающийся от других символов тире Unicode как короткое тире и длинное тире.

Команды не дают специального значения тем символам тире, поэтому в то время как -c аргумент указывает короткий выбор c, –c, аргумент не указывает выбора вообще. Вы на самом деле бежали usermod с тремя аргументами невыбора, который не является одним из синтаксисов, которые он принимает, таким образом, он напечатал свое сообщение помощи.

причина люди заканчивают тем, что печатали короткие тире вместо дефисов в командах, - хорошо, никто не делает это. Вместо этого некоторые веб-сайты преобразовывают дефисы в короткие тире . Таким образом, когда команда скопирована со страницы такого веб-сайта и приклеена в терминал, это неправильно содержит короткое тире вместо дефиса. Это могло также произойти, если бы Вы использовали программу как LibreOffice, чтобы сохранить список команд (и не выключил автоформатирование).

Подобные проблемы, которые часто возникают на практике из такого искореженного текста, включают вставку дополнительных мест около пунктуации (очень плохо в rm -r команды!), замена прямых котировок с вьющимися котировками и исчезновение текста между < характер и соответствие > характер.

команда Вы хотели бежать, sudo usermod -c "Richard Tracy" dtracy, хорошо работает.

6
ответ дан 17 November 2019 в 09:37

Другие вопросы по тегам:

Похожие вопросы: