[Pkg-shadow-devel] Bug#488420: login: no proper way for a CDD to disable failed logins recording
intrigeri at boum.org
intrigeri at boum.org
Sat Jun 28 19:09:15 UTC 2008
Package: login
Version: 1:4.1.1-1
Severity: wishlist
Hello,
In short, my proposal is to modify the login postinst script to create
/var/log/faillog only on initial install (performed by d-i and
debootstrap), and not on subsequent upgrades. Please read on to
understand why this solution, or any other one, is needed.
,----
| Context
`----
There is some work being done to give the Debian system administrator
the means to implement site-logging policies. Once the preliminary
bricks have entered Debian, the result of this work will be proposed
for inclusion as one or several meta-package(s) / CDD(s) allowing easy
privacy-enforcing system configuration. Hence the need to make it
possible to automatically configure such aspects of a system « the
Debian way », rather than by hand-editing a pile of conffiles.
Today’s focus is to allow a Debian system administrator to disable
login records book-keeping.
This bug report is a small step on the way to make this possible
(another step being the related Debian bug #488376... more to come).
,----
| Current /var/log/faillog behavior
`----
Amongst others, the /var/log/faillog world-readable file gathers
privacy-sensitive data (every user’s time and date of last failed
login). Not too sensitive, one may think, but objective truth is hard
to tell in this area : depending on the context, it may or not be
dangerous to expose some given personal data piece to any user of
the system.
AFAIK, only the login binary updates /var/log/faillog, if, and only
if :
- this file already exists on the system
AND
- FAILLOG_ENAB is enabled in /etc/login.defs
Nota bene : the current login’s postinst script unconditionally
creates /var/log/faillog, be it on initial install or on upgrade.
,----
| How to allow a CDD to disable faillog ?
`----
Alas, the few trivial solutions I could think of to allow a CDD to
disable /var/log/faillog book-keeping all fail :
(1) Disabling FAILLOG_ENAB /etc/login.defs does work, but IIRC the
Debian policy forbids a package to modify another package’s
conffile ;
(2) Deleting /var/log/faillog may at first seem to be a suitable
solution for a CDD ; but it actually only works until the next
login package upgrade, since this package’s postinst script
unconditionally creates /var/log/faillog.
(3) Using dpkg-divert in the CDD to replace login’s login.defs by
a custom one : seems a bit ugly/risky to me to divert the conffile
of an essential package, what do you - login maintainers - think
of this ?
Something has then to be changed somewhere... and that’s why I’m now
annoying login maintainers ;)
The solutions I could think of are :
(A) To make (1) feasible the Debian way, add a very-low-priority
debconf question in the login package to toggle FAILLOG_ENAB
value, so that a given CDD can use preseeding to disable it : this
is the nicest solution I can think of, but I guess it’s not
possible for a package in Essential, such as login, to use
debconf, is it ?
(B) To make (2) work permanently, modify the login postinst script to
create /var/log/faillog only on initial install (performed by
d-i/debootstrap), and not on subsequent upgrades. This way, a CDD
could delete this file once for all on install, and re-create it
on removal, which :
- is permitted since /var/log/faillog does not belong to any
package ;
- should not break anything : this file is only created by login
postinst, and AFAIK its removal affects nothing else than the
login binary − in a known and innocuous way.
This solution was proposed by Santiago Vila for a similar bug
(#488376) I submitted against base-files.
Any opinions, other ideas ?
If (A) is not doable, as I guess, (B) seems a nice one to me.
Would you accept a patch implementing it ?
Anyway, I’m conscious this is probably too late to implement such
a change in time for Lenny : despite it being small and not really
risky, it does not really deserve a base-system freeze exception, does
it ?
Bye, thanks to have read entirely,
--
intrigeri <intrigeri at boum.org>
More information about the Pkg-shadow-devel
mailing list