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
    Commented May 2, 2022 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. Commented May 2, 2022 at 17:39
  • Seriously thanks for this. This is a handy tip!
    – Ufder
    Commented May 2, 2022 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_
    Commented May 3, 2022 at 9:09
  • 1
    @dr_ Even our site used to do this in titles. There is another abomination in titles, not fixed yet. Commented May 3, 2022 at 11:20

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .