在 Ubuntu 20.04 上,我尝试添加用户,但是总是失败。我没有看到任何错误,也没有因为一个简单的useradd
命令而疯狂!我究竟做错了什么?
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
–
你的命令中不是 ASCII -
。在像-m
工具这样的选项中(就像几乎所有工具一样)需要普通的旧 ASCII -
。
您的命令如下所示:
$ 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
正确的命令如下所示:
$ 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