From owner-freebsd-bugs@FreeBSD.ORG Fri Oct 26 19:00:01 2012 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 7B802750 for ; Fri, 26 Oct 2012 19:00:01 +0000 (UTC) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (freefall.FreeBSD.org [8.8.178.135]) by mx1.freebsd.org (Postfix) with ESMTP id 623E18FC17 for ; Fri, 26 Oct 2012 19:00:01 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q9QJ01KV033168 for ; Fri, 26 Oct 2012 19:00:01 GMT (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q9QJ01xg033167; Fri, 26 Oct 2012 19:00:01 GMT (envelope-from gnats) Date: Fri, 26 Oct 2012 19:00:01 GMT Message-Id: <201210261900.q9QJ01xg033167@freefall.freebsd.org> To: freebsd-bugs@FreeBSD.org Cc: From: J B Subject: Re: misc/172965: pw useradd does not allow -g "" X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list Reply-To: J B List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 26 Oct 2012 19:00:01 -0000 The following reply was made to PR misc/172965; it has been noted by GNATS. From: J B To: bug-followup@FreeBSD.org, jeff@bovine.net Cc: Subject: Re: misc/172965: pw useradd does not allow -g "" Date: Fri, 26 Oct 2012 20:58:46 +0200 I am presenting a summary that would suggest better solution. pw(8): ... USER OPTIONS The following options apply to the useradd and usermod commands: ... -g group Set the account's primary group to the given group. group may be defined by either its name or group number. ... The useradd command also has the ability to set new user and group defaults by using the -D option. Instead of adding a new user, pw writes a new set of defaults to its configuration file, /etc/pw.conf. When using the -D option, you must not use either -n name or -u uid or an error will result. Use of -D changes the meaning of several command line switches in the useradd command. These are: -D Set default values in /etc/pw.conf configuration file, or a different named configuration file if the -C config option is used. ... -g group Set the default group for new users. If a blank group is specified using -g "", then new users will be allocated their own private primary group with the same name as their login name. If a group is supplied, either its name or uid may be given as an argument. ... Now, let's review it once again. # pw useradd moo -g moo pw: group `moo' does not exist # pw useradd moo -g boo pw: group `boo' does not exist # pw useradd moo -g "" pw: group `' is not defined You want to make a one-time override of any default group as established in /etc/pw.conf by "-D -g" options: # pw useradd moo -g "" moo:*:8007:8007:User &:/home/moo:/bin/sh But, the below does the same but by checking if user name/id is equal to primary group name/id as entered: # pw useradd moo -g moo moo:*:8007:8007:User &:/home/moo:/bin/sh which clearly reflects user's intentions as entered. By contrast, your solution is less clear about the user's intentions; also, it introduces blank group specification -g "" to entry whose context is an immediate and particular account setup, but which is specific to -D -g "" type of entry whose context is setting up system defaults for any accounts setup.