# apparmor.d - Full set of apparmor profiles # Copyright (C) 2019-2021 Mikhail Morfikov # Copyright (C) 2023-2024 Alexandre Pujol # SPDX-License-Identifier: GPL-2.0-only abi , include @{exec_path} = @{bin}/useradd profile useradd @{exec_path} { include include include capability audit_write, capability chown, capability dac_override, capability dac_read_search, capability fowner, capability fsetid, network netlink raw, @{exec_path} mr, @{bin}/nscd rix, @{bin}/usermod rPx, @{bin}/pam_tally2 rCx -> pam_tally2, /etc/default/useradd r, /etc/login.defs r, /etc/{passwd,shadow,gshadow,group,subuid,subgid} rw, /etc/{passwd,shadow,gshadow,group,subuid,subgid}- w, /etc/{passwd,shadow,gshadow,group,subuid,subgid}.@{pid} w, /etc/{passwd,shadow,gshadow,group,subuid,subgid}+ rw, /etc/group.lock wl -> /etc/group.@{pid}, /etc/gshadow.lock wl -> /etc/gshadow.@{pid}, /etc/passwd.lock wl -> /etc/passwd.@{pid}, /etc/shadow.lock wl -> /etc/shadow.@{pid}, /etc/subgid.lock wl -> /etc/subgid.@{pid}, /etc/subuid.lock wl -> /etc/subuid.@{pid}, # A process first uses lckpwdf() to lock the lock file, thereby gaining exclusive rights to # modify the /etc/passwd or /etc/shadow password database. /etc/.pwd.lock rwk, /var/log/faillog rw, /var/log/lastlog rw, # To create user dirs and copy files from /etc/skel/ to them @{HOME}/ rw, @{HOME}/.* w, /var/lib/*/{,*} rw, /etc/skel/{,.*} r, profile pam_tally2 { include include include capability audit_write, @{bin}/pam_tally2 mr, /var/log/tallylog rw, include if exists } include if exists } # vim:syntax=apparmor