]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC freebsd-update: unconditionally regenerate passwd/login.conf files
authorKyle Evans <kevans@FreeBSD.org>
Thu, 17 Dec 2020 03:42:54 +0000 (03:42 +0000)
committerMark Johnston <markj@FreeBSD.org>
Wed, 24 Feb 2021 01:42:01 +0000 (20:42 -0500)
commitdf378912ebc2fe2603fcbcedf72af9d7b0e94db7
tree0c2e3185ee61ce55826112d9feddfda7ff112064
parent0f1ee1523649b745535f14988880eea239c2af3f
MFC freebsd-update: unconditionally regenerate passwd/login.conf files

The existing logic is nice in theory, but in practice freebsd-update will
not preserve the timestamps on these files. When doing a major upgrade, e.g.
from 12.1-RELEASE -> 12.2-RELEASE, pwd.mkdb et al. appear in the INDEX and
we clobber the timestamp several times in the process of packaging up the
existing system into /var/db/freebsd-update/files and extracting for
comparisons. This leads to these files not getting regenerated when they're
most likely to be needed.

Measures could be taken to preserve timestamps, but it's unclear whether
the complexity and overhead of doing so is really outweighed by the marginal
benefit.

I observed this issue when pkg subsequently failed to install a package that
wanted to add a user, claiming that the user was removed in the process.
bapt@ pointed to this pre-existing bug with freebsd-update as the cause.

PR: 234014, 232921
Approved by: so
Security: FreeBSD-EN-21:08.freebsd-update

(cherry picked from commit ebebc41e4cfe44b8e8fd881badf2fa2c4be65aa4)
(cherry picked from commit 5cf1ba21eebaf89cf4d8639a18345dc49116d1d5)
usr.sbin/freebsd-update/freebsd-update.sh