pwd.db too big for / partition
hakmi at rogers.com
Mon Mar 19 20:49:16 UTC 2007
> On Mon, Mar 19, 2007 at 10:39:18AM -0700, Chuck Swiger wrote:
> > On Mar 19, 2007, at 7:54 AM, Marcelo Maraboli wrote:
> > >my / partition has only 73.196 Mbytes available and since I have
> > >22.000 users, I now cannot change anyone?s password..
> > >
> > >root at server:~$ passwd marcelo.maraboli Changing local password for
> > >marcelo.maraboli New Password:
> > >Retype New Password:
> > >
> > >/: write failed, filesystem is full
> > >pwd_mkdb: write old: No space left on device
> > >passwd: pam_chauthtok(): error in service module
> > >
> > >How can I rezise the "/" partition or move the spwb.db and pwd.db
> > >files to another partition ?? (each of them is 44 Mbytes)
> > You certainly don't want to move the password files out of /etc--
> > you'll render the machine unbootable as it needs to find
> them on the
> > root partition. The only approach I see which is likely to be
> > workable would be to backup the system, repartition the
> disks with a
> > larger root partition, and restore from backups.
> I agree.
> > However, in theory, if you had free disk space, you could
> use growfs
> > to expand the root partition without repartitioning, but I
> am dubious
> > about using that command against /.
> I believe, with growfs, the space that you add must be contiguous
> with the partition it is joining. So, unless there is a partition
> that could be shrunk next to root, (maybe swap is there) it
> wouldn't work.
> If there is room - maybe by mucking with swap if it is the
> next partition, then it might be do-able. But, I would also
> be leary of doing it with /.
> > --
> > -Chuck
Well, I had a VM laying around so thought to fire it up and do some testing. I know this is absurd abit but I wanted to see the effect of doing symlinks with pwd.db files.
- I was able to copy /etc/pwd.db /etc/spwd.db to /var/etc/
- Then I deleted /etc/pwd.db and /etc/spwd.db
- created ln -s /var/etc/pwd.db /etc/pwd.db and ln -s /var/etc/spwd.db /etc/spwd.db
- changed the root password, worked!
- Even rebooted the system and was able to successfully able to login
- All worked fine except, I noticed after running passwd to reset a user password, the system copied pwd.db and spwd.db over the symlinks so I always was ending up with /etc/pwd.db and /etc/spwd.db files
I guess this method will solve your space problem if there is a way to make the system follow the symlink instead of overwriting it everytime a password is changed/created.
More information about the freebsd-questions