It sounds like things got pretty complicated, but I think you’ve addressed
my concerns. Thank you.


On Thu, Sep 25, 2025 at 3:37 AM Andrew Bower <[email protected]> wrote:

> Hi ov2k,
>
> A note on the resolution of this bug:
>
> On Sun, Jul 14, 2024 at 11:42:54AM -0400, ov2k wrote:
> > On Sun, Jul 14, 2024 at 7:22 AM Chris Hofstaedtler <[email protected]>
> wrote:
> > > On Sat, Jul 13, 2024 at 11:33:01PM -0400, ov2k wrote:
> > > > wtmpdb respects the system-wide umask when creating
> > > > /var/lib/wtmpdb/wtmp.db.  This is inappropriate when the system-wide
> > > > umask is 077 or something similarly restrictive, as wtmp.db can no
> > > > longer be read by others
> > >
> > > That however might be the intention of a local configuration. IOW
> > > admins might want to set it up so that login records are not leaked
> > > to non-root.
> [...]
> > > > The problem occurs if the
> > > > system-wide umask is configured during installation (before wtmp.db
> is
> > > > created) or if wtmp.db is removed at any point after the system-wide
> > > > umask has been configured.
> > >
> > > Just to be clear, how did you set up the system-wide umask?
> >
> > via /etc/default/login. I think that's how it's managed now with
> > pam_umask.so. I do this before exiting the installer.
> >
> > > > One solution would be to create wtmp.db as part of the wtmpdb package
> > > > postinst.  From my testing, I think just touching an empty file with
> the
> > > > proper permissions would suffice.
> > >
> > > This is probably not sufficient after rotation of the database.
> >
> > Good point. Can rotation preserve existing permissions? If an
> > administrator with the default umask 022 were to change permissions on
> > the database, would they get lost after rotation?
>
> The rotation scheme provided by wtmpdb sufers from this problem: it does
> not preserve the permissions of the old log. That rotation scheme was
> defective in so many ways (#1094965) that it did more harm than good and
> was
> disabled by default in installations of the trixie release pending the
> provision of a better solution (which proved elusive).
>
> Version 0.74.0-1 of wtmpdb, now in the experimental suite, uses
> logrotate(8) for log rotation and pruning. Logrotate knows all about how
> to do this properly and now both the rotated logs and live database file
> retain the same permissions of the previous database file.
>
> This bug is therefore fixed as a side effect of the new rotation scheme.
>
> As for the initial file creation, I think it is sufficient for you to
> set this up yourself by touching the file, just as you are seeding your
> desired system-wide umask settings in the filesystem.
>
> Therefore I think we can now close this.
>
> > > > Another solution would be for wtmpdb to explicitly set the mode of
> > > > wtmp.db to 644 every time the database file is created.  I'm not sure
> > > > whether it should occur if wtmp.db is an existing empty file.
> > >
> > > I think this will make hiding login records from non-root
> > > impossible, thus also not desirable.
> > >
> > >
> > > Additional clarification: above you said:
> > > > wtmpdb respects the system-wide umask when creating
> > > > /var/lib/wtmpdb/wtmp.db.
> > >
> > > However wtmpdb does not create that file; instead libpam-wtmpdb
> > > does. Could you clarify more what exactly you configured, and which
> > > behaviour you observed on which events/commands?
> > >
> > > Chris
> > >
> >
> > Sorry, I'm not that familiar with the various wtmpdb packages. To
> > summarize, I set UMASK=077 in /etc/default/login in the installer.
> > After rebooting and logging in, last called as an unprivileged user
> > reported not being able to access wtmp.db because its mode was 600
> > instead of the 664 wtmp gets. I don't normally touch the permissions
> > with wtmp, even with umask 077, and I expected the same of
> > libpam-wtmpdb. From what you were saying earlier, it sounds like any
> > customizations made to the wtmp.db permissions would get lost on
> > rotation, and reset to whatever results after the system-wide umask is
> > applied.
>
> Indeed.
>
> You might also consider adding a file to /etc/tmpfiles.d, if your system
> uses tmpfiles.d, to handle creating a new database file with your
> preferred properties in case it goes missing for any reason as you
> suggested it might above.
>
> I hope this does what you need now.
>
> Andrew
>

Reply via email to