# apparmor.d - Full set of apparmor profiles # Copyright (C) 2019-2021 Mikhail Morfikov # SPDX-License-Identifier: GPL-2.0-only abi , include @{exec_path} = /{usr/,}sbin/usermod profile usermod @{exec_path} flags=(attach_disconnected) { include include include # To write records to the kernel auditing log. capability audit_write, # To set the right permission to the files in the /etc/ dir. capability chown, capability fsetid, # To read user home files and change their user/group. # usermod: Failed to change ownership of the home directory capability dac_read_search, # To move user home files to a new location. capability fowner, # To prevent removing a user when it's used by some process. capability sys_ptrace, ptrace (read), network netlink raw, @{exec_path} mr, /etc/login.defs r, /etc/{passwd,shadow,gshadow,group} rw, /etc/{passwd,shadow,gshadow,group}.@{pid} w, /etc/{passwd,shadow,gshadow,group}- w, /etc/{passwd,shadow,gshadow,group}+ rw, /etc/passwd.lock wl -> /etc/passwd.@{pid}, /etc/group.lock wl -> /etc/group.@{pid}, /etc/shadow.lock wl -> /etc/shadow.@{pid}, /etc/gshadow.lock wl -> /etc/gshadow.@{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, /etc/subuid r, @{PROC}/ r, @{PROC}/@{pids}/task/ r, # To create and move user dirs @{HOME}/{,**} rw, /var/{,**} rw, include if exists }