Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 13 Dec 2007 16:52:54 +0200
From:      Jonathan McKeown <jonathan@hst.org.za>
To:        freebsd-questions@freebsd.org
Subject:   Re: Where is the next uid from adduser pulled from?
Message-ID:  <200712131652.54824.jonathan@hst.org.za>
In-Reply-To: <20071212180452.GP51627@amilo.cenkes.org>
References:  <cone.1197478806.593699.45285.1000@zoraida.natserv.net> <20071212180452.GP51627@amilo.cenkes.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 12 December 2007 20:04, Andrew Pantyukhin wrote:
> On Wed, Dec 12, 2007 at 12:00:06PM -0500, Francisco Reyes wrote:
> > I have scripts to add new users. However, after that any port that
> > installs a user creates it with a UID after the ones I made.
> >
> > For example I want all employees to have uids starting at 5000, but I
> > would like too port installed uids to be 2000 and up. After I add some
> > users (ie say last user is 5008), the next port that installs a user and
> > doesn't specify uid.. then will get 5009.
> >
> > Tried looking for the adduser program, but could not find adduser.c
>
> It's pw(8) that selects default uids and it just takes the last
> one (numerically) and uses the next one.
>
> Create a placeholder user with uid 5000 and let ports use uids
> 5000+, but when creating new users, specify uids manually (both
> pw and adduser allow that).

Alternatively, create/edit /etc/pw.conf including

minuid 2000
maxuid 4999
reuseuids yes

This will cause automatic uses of pw(8) (such as port installations) to use 
uids between 2000 and 4999, and to ``fill in the gaps''.

When adding a user by hand, use

pw -C /dev/null

to tell pw to ignore pw.conf(5) and get the default behaviour (which is to use 
the uid one higher than the highest ever used).

adduser(8) should just DTRT, but you can make sure by adding to the flags -u 
uid_start which will use the next available uid after uid_start (which it 
identifies by testing each uid in turn for existence, not by just using pw 
usernext).

Jonathan



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200712131652.54824.jonathan>