diff --git a/profiles/apparmor.d/abstractions/authentication b/profiles/apparmor.d/abstractions/authentication index 65cd0d72f..c3404f6be 100644 --- a/profiles/apparmor.d/abstractions/authentication +++ b/profiles/apparmor.d/abstractions/authentication @@ -31,6 +31,10 @@ /{usr/,}lib/@{multiarch}/security/pam_*.so mr, /{usr/,}lib/@{multiarch}/security/ r, + # pam_unix + owner /proc/@{pid}/loginuid r, + /{,usr/}{,s}bin/unix_chkpwd Px, + # gssapi @{etc_ro}/gss/mech r, @{etc_ro}/gss/mech.d/ r, diff --git a/profiles/apparmor.d/unix-chkpwd b/profiles/apparmor.d/unix-chkpwd new file mode 100644 index 000000000..a8ec8d43f --- /dev/null +++ b/profiles/apparmor.d/unix-chkpwd @@ -0,0 +1,35 @@ +# apparmor.d - Full set of apparmor profiles +# Copyright (C) 2019-2021 Mikhail Morfikov +# SPDX-License-Identifier: GPL-2.0-only + +# The apparmor.d project comes with several variables and abstractions +# that are not part of upstream AppArmor yet. Therefore this profile was +# adopted to use abstractions and variables that are available. +# Copyright (C) Christian Boltz 2024 + +abi , + +include + +profile unix-chkpwd /{,usr/}{,s}bin/unix_chkpwd { + include + include + + # To write records to the kernel auditing log. + capability audit_write, + + network netlink raw, + + /{,usr/}{,s}bin/unix_chkpwd mr, + + /etc/shadow r, + + # systemd userdb, used in nspawn + /run/host/userdb/*.user r, + /run/host/userdb/*.user-privileged r, + + # file_inherit + owner /dev/tty[0-9]* rw, + + include if exists +}