[CentOS] Change password and add user on RO filesystem

Wed Sep 5 05:34:22 UTC 2018
Keith Keller <kkeller at wombat.san-francisco.ca.us>

Hello Marcin,

On 2018-09-04, Marcin Trendota <moonwolf.rh at gmail.com> wrote:
> I'm trying to create system with RO root filesystem, so i'm using
> /etc/sysconfig/readonly-root along wih /etc/rwtab and /etc/statetab.
> Apart of numerous problems with services running on RO filesystem (which
> i'm constantly resolving adding entries to /etc/statetab) one thing
> popped up. I'm unable to add user or change his password. Error is
> 'cannot lock /etc/passwd; try again later.'.
> After research it turns up (at least on Fedora, but i assume same on
> CentOS) some files being created in /etc. For example /etc/shadow.<pid>,
> and some others with PID in name. Obviously it's impossible on RO
> filesystem...
> Is there any workaround (apart of remounting whole filesystem RW)?

Have you looked at this article?


Unfortunately it doesn't really provide a local workaround, but if you
have something like LDAP available already that might be a way to go.

If not (and assuming you've added /etc/passwd and friends to
/etc/statetab*), one very crude option might be to manipulate the files
by hand.  For /etc/passwd and /etc/group (if necessary) this is easy,
since it's just a plain text file with human-readable text.  For
/etc/shadow this is slightly more complicated, since you need to
generate the password hash.  For that you can use mkpasswd:


Obviously doing this makes adding a user a nonatomic operation, so you
need to take care manipulating passwd and shadow in this way.  (I don't
know if mkpasswd is available from a yum repo, but the included python
should be there.)


kkeller at wombat.san-francisco.ca.us