N.B. If you don't modify PAM configurations to manage authentication/access, this is a non-issue for you.
Using the documented pkgbase upgrade procedure:
any local changes in /etc/pam.d seem to get overwritten without warning. (No .pkg* files or other l indications of conflicts).
Luckily I did this first in a VM, and I was able to directly roll back to a snapshot of the backing store taken before the upgrade without losing access.
Here is the closest it gets to a warning about this:
Note it states the conflict on the /etc/pam.d/README (which it finally decides is not an issue, as FreeBSD-runtime-15.0p5 will be removed before FreeBSD-pam-15.1 lands) and pam_chroot.so, but not a whisper about /etc/pam.d/sshd. In my case, this was modified/reset to default, causing a loss of access: (.git in /etc was initialized and committed with initial state immediately before running the upgrade procedure the second time around on the rolled-back VM)
(Cron gets a new :session required pam_permit.so"; but my custom /etc/pam.d/sshd configuration using pam_krb5.so was reset to stock.)
I suspect this is due to PAM being broken out into a separate installation package (FreeBSD-pam), and things not quite being handled correctly in this transition. (Perhaps checking for modification of configuration files when "upgrading" a package rather than just overwriting them when installing a "new" package.)
Using the documented pkgbase upgrade procedure:
pkg -oABI=FreeBSD:15:$(uname -p) -oOSVERSION=1501000 upgrade -r FreeBSD-baseany local changes in /etc/pam.d seem to get overwritten without warning. (No .pkg* files or other l indications of conflicts).
Luckily I did this first in a VM, and I was able to directly roll back to a snapshot of the backing store taken before the upgrade without losing access.
Here is the closest it gets to a warning about this:
Code:
Checking integrity... done (7 conflicting)
- FreeBSD-sound-15.1 [FreeBSD-base] conflicts with FreeBSD-rc-15.0 [installed] on /etc/rc.d/mixer
- FreeBSD-zstd-lib-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-15.0p5 [installed] on /usr/lib/libprivatezstd.so.5
- FreeBSD-pam-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-15.0p5 [installed] on /etc/pam.d/README
- FreeBSD-pam-15.1 [FreeBSD-base] conflicts with FreeBSD-utilities-15.0p1 [installed] on /usr/lib/pam_chroot.so
- FreeBSD-zstd-15.1 [FreeBSD-base] conflicts with FreeBSD-utilities-15.0p1 [installed] on /usr/bin/unzstd
- FreeBSD-clang-15.1 [FreeBSD-base] conflicts with FreeBSD-lldb-15.0 [installed] on /usr/lib/libprivatelldb.so.19
- FreeBSD-pam-lib-15.1 [FreeBSD-base] conflicts with FreeBSD-runtime-15.0p5 [installed] on /usr/lib/libpam.so.6
Checking integrity... done (0 conflicting)
Note it states the conflict on the /etc/pam.d/README (which it finally decides is not an issue, as FreeBSD-runtime-15.0p5 will be removed before FreeBSD-pam-15.1 lands) and pam_chroot.so, but not a whisper about /etc/pam.d/sshd. In my case, this was modified/reset to default, causing a loss of access: (.git in /etc was initialized and committed with initial state immediately before running the upgrade procedure the second time around on the rolled-back VM)
/etc/pam.d # git diff --name-status .
M pam.d/cron
M pam.d/sshd
(Cron gets a new :session required pam_permit.so"; but my custom /etc/pam.d/sshd configuration using pam_krb5.so was reset to stock.)
I suspect this is due to PAM being broken out into a separate installation package (FreeBSD-pam), and things not quite being handled correctly in this transition. (Perhaps checking for modification of configuration files when "upgrading" a package rather than just overwriting them when installing a "new" package.)