Reputation: 12653
I'm using Ubuntu 14.04 Trusty Tahr, and a quick peek at /etc/group
reveals
$ cat /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
sys:x:3:
adm:x:4:syslog
tty:x:5:
disk:x:6:
lp:x:7:
mail:x:8:
news:x:9:
uucp:x:10:
man:x:12:
proxy:x:13:
kmem:x:15:
dialout:x:20:
fax:x:21:
voice:x:22:
cdrom:x:24:
floppy:x:25:
tape:x:26:
sudo:x:27:
audio:x:29:
dip:x:30:
www-data:x:33:
backup:x:34:
operator:x:37:
list:x:38:
irc:x:39:
src:x:40:
gnats:x:41:
shadow:x:42:
utmp:x:43:
video:x:44:
sasl:x:45:
plugdev:x:46:
staff:x:50:
games:x:60:
users:x:100:
nogroup:x:65534:
libuuid:x:101:
netdev:x:102:
crontab:x:103:
syslog:x:104:
ntp:x:105:
ssh:x:106:
When I tried to add staff
, I got an error message as I would expect (being that staff
is already defined with gid 50
).
$ groupadd --gid 20 --non-unique staff
groupadd: group 'staff' already exists
The unexpected part is when I tried to add a user with the staff
group.
$ useradd --groups staff --no-create-home --no-user-group --non-unique --root /projects/ --uid 502 username
useradd: group 'staff' does not exist
What am I doing wrong here? It don't believe it is Docker specific, but I just wanted to make mention in case it was important.
Upvotes: 0
Views: 15883
Reputation: 312370
Your problem is the use of the --root
argument. If you look at the useradd man page, you'll note that --root
specifies a chroot
directory:
-R, --root CHROOT_DIR
Apply changes in the CHROOT_DIR directory and use the configuration
files from the CHROOT_DIR directory.
That means that when you pass --root projects
, the useradd
command will be looking for /projects/etc/passwd
, /projects/etc/group
, etc. Those don't exist, which leads to the "does not exist" error.
I wonder if you actually meant --home-dir
or --base-dir
instead of --root
?
Upvotes: 1