# apparmor.d - Full set of apparmor profiles # Copyright (C) 2019-2021 Mikhail Morfikov # Copyright (C) 2021-2024 Alexandre Pujol # SPDX-License-Identifier: GPL-2.0-only abi , include @{exec_path} = @{bin}/vi{pw,gr} profile vipw-vigr @{exec_path} { include capability chown, @{exec_path} mr, @{sh_path} rix, @{editor_path} rCx -> editor, @{etc_ro}/login.defs r, /etc/{passwd,shadow,gshadow,group}{,.edit} rw, /etc/{passwd,shadow,gshadow,group}.@{pid} rw, /etc/passwd.lock wl -> /etc/passwd.@{pid}, /etc/shadow.lock wl -> /etc/shadow.@{pid}, /etc/gshadow.lock wl -> /etc/gshadow.@{pid}, /etc/group.lock wl -> /etc/group.@{pid}, /etc/passwd- wl -> /etc/passwd, /etc/shadow- wl -> /etc/shadow, /etc/gshadow- wl -> /etc/gshadow, /etc/group- wl -> /etc/group, # 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, profile editor { include include capability fsetid, /etc/{passwd,shadow,gshadow,group}.edit rw, include if exists } include if exists } # vim:syntax=apparmor