我正在使用Ubuntu 14.04 Trusty Tahr,快速浏览/etc/group
揭示
$ 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:
当我尝试添加staff
时,我收到了一条错误消息(因为staff
已经定义了gid 50
)。
$ groupadd --gid 20 --non-unique staff
groupadd: group 'staff' already exists
意外的部分是我尝试添加staff
组的用户时。
$ useradd --groups staff --no-create-home --no-user-group --non-unique --root /projects/ --uid 502 username
useradd: group 'staff' does not exist
我在这里做错了什么?它不相信它是特定于Docker的,但我只是想提一下它是否重要。
答案 0 :(得分:1)
您的问题是使用--root
参数。如果您查看useradd man page,则会注意--root
指定chroot
目录:
-R, --root CHROOT_DIR
Apply changes in the CHROOT_DIR directory and use the configuration
files from the CHROOT_DIR directory.
这意味着当您通过--root projects
时,useradd
命令将会查找/projects/etc/passwd
,/projects/etc/group
等。这些命令不存在,从而导致“不存在”错误。
我想知道你的意思是--home-dir
还是--base-dir
而不是--root
?