4

On Ubuntu 20.04, I am trying to add a user, however, it keeps failing. I don't see anything wrong and going crazy over a simple useradd command! What am I doing wrong?

root@myhost:~# uname -a
Linux dsdb 5.4.0-109-generic #123-Ubuntu SMP Fri Apr 8 09:10:54 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

root@myhost:~# getent group oinstall
oinstall:x:1001:

root@myhost:~# getent group dba
dba:x:1002:

root@myhost:~# useradd –g oinstall –G dba –m –d /home/oracle oracle
Usage: useradd [options] LOGIN
       useradd -D
       useradd -D [options]

Options:
      --badnames                do not check for bad names
  -b, --base-dir BASE_DIR       base directory for the home directory of the
                                new account
      --btrfs-subvolume-home    use BTRFS subvolume for home directory
  -c, --comment COMMENT         GECOS field of the new account
  -d, --home-dir HOME_DIR       home directory of the new account
  -D, --defaults                print or change default useradd configuration
  -e, --expiredate EXPIRE_DATE  expiration date of the new account
  -f, --inactive INACTIVE       password inactivity period of the new account
  -g, --gid GROUP               name or ID of the primary group of the new
                                account
  -G, --groups GROUPS           list of supplementary groups of the new
                                account
  -h, --help                    display this help message and exit
  -k, --skel SKEL_DIR           use this alternative skeleton directory
  -K, --key KEY=VALUE           override /etc/login.defs defaults
  -l, --no-log-init             do not add the user to the lastlog and
                                faillog databases
  -m, --create-home             create the user's home directory
  -M, --no-create-home          do not create the user's home directory
  -N, --no-user-group           do not create a group with the same name as
                                the user
  -o, --non-unique              allow to create users with duplicate
                                (non-unique) UID
  -p, --password PASSWORD       encrypted password of the new account
  -r, --system                  create a system account
  -R, --root CHROOT_DIR         directory to chroot into
  -P, --prefix PREFIX_DIR       prefix directory where are located the /etc/* files
  -s, --shell SHELL             login shell of the new account
  -u, --uid UID                 user ID of the new account
  -U, --user-group              create a group with the same name as the user
  -Z, --selinux-user SEUSER     use a specific SEUSER for the SELinux user mapping
      --extrausers              Use the extra users database

1 Answer 1

13

in your command is not ASCII -. In options like -m the tool (like almost every tool) requires plain old ASCII -.

This is how your command looks like:

$ printf '%s\n' 'useradd –g oinstall –G dba –m –d /home/oracle oracle' | od -c
0000000   u   s   e   r   a   d   d     342 200 223   g       o   i   n
0000020   s   t   a   l   l     342 200 223   G       d   b   a     342
0000040 200 223   m     342 200 223   d       /   h   o   m   e   /   o
0000060   r   a   c   l   e       o   r   a   c   l   e  \n
0000075

And this is how a proper command looks like:

$ printf '%s\n' 'useradd -g oinstall -G dba -m -d /home/oracle oracle' | od -c
0000000   u   s   e   r   a   d   d       -   g       o   i   n   s   t
0000020   a   l   l       -   G       d   b   a       -   m       -   d
0000040       /   h   o   m   e   /   o   r   a   c   l   e       o   r
0000060   a   c   l   e  \n
0000065
5
  • 1
    THANKYOU! Can't believe I wasted so much time on this, so much for saving time with copy paste. How did you spot it, if I may ask?
    – Ufder
    May 2 at 17:36
  • 5
    @Ufder It's not the first time I see this problem. I'm sure there are duplicate questions already answered but I decided to help you fast by publishing a community wiki answer. May 2 at 17:39
  • Seriously thanks for this. This is a handy tip!
    – Ufder
    May 2 at 17:42
  • 6
    This is a typical problem with some websites that do "fancy" formatting and mangle the code in the process. Another victim is the double-minus (--) being replaced with a en- or em-dash (). A good advice is: if your command results in weird errors, try retyping it by hand.
    – dr_
    May 3 at 9:09
  • 1
    @dr_ Even our site used to do this in titles. There is another abomination in titles, not fixed yet. May 3 at 11:20

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.