Regenerating the password databases on new installs

Aaron LI aly at aaronly.me
Tue Feb 7 21:52:59 PST 2023


Hi,

I've looked at the installation doc and the code, and I can confirm this issue.

It's caused by the inconsistency between the DBs (pwd.db and spwd.db) and the passwd files (i.e., master.passwd, passwd, group).  On the release ISO/IMG, there are '/etc' and '/etc.hdd' (the latter is copied to the installing machine).  During the release building, the 'installer' user was added to '/etc', but only the passwd files were copied to '/etc.hdd', and thus the aformentioned inconsistency.  And this inconsistency caused the adduser (pw adduser) issue here.

And as you figured out, a rebuild of the DBs (pwd_mkdb) resolved the issue.

So, I've updated the installation doc to add the missing pwd_mkdb step, which is actually performed by the installer.

On the other hand, I'll try to improve the release build Makefile to eliminate the inconsistency as well.

See also: https://gitweb.dragonflybsd.org/dragonfly.git/blob/HEAD:/nrelease/Makefile
(lines 237-241, 328-331)

Cheers,
Aaron

> On Feb 8, 2023, at 06:53, Mayu Inc. <pomomayu at gmail.com> wrote:
> 
> 
> We successfully installed new systems on a few different machines using the extended layout guide in the handbook to utilize pseudo filesystems. On every install we've had to re-generate the password databases or else new users are  visible in /etc/passwd but unable to login.
> 
> The following error occured after creating a new user with the 'adduser' utility:
> 
> pw: user 'myuser' disappeared during update.
> adduser: ERROR: There was an error adding user (myuser).
> 
> Using this work-around before creating any users seems to work:
> 
>       # cp /etc/passwd /etc/passwd.orig
>       # cp /etc/master.passwd /etc/master.passwd.orig
>       # pwd_mkdb /etc/master.passwd


More information about the Users mailing list