| Server IP : 178.105.222.151 / Your IP : 216.73.216.38 Web Server : nginx/1.28.3 System : Linux MNK 7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 16:06:43 UTC 2026 x86_64 User : www-data ( 33) PHP Version : 8.5.4 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /etc/apparmor.d/ |
Upload File : |
abi <abi/5.0>,
include <tunables/global>
profile who @{coreutil_dirs}who {
include <abstractions/base>
# who can theoretically take an arbitrary file argument but there seems to be
# no common reason why one would want to pass a file not listed in the below
# abstraction, or their rotated equivalents
include <abstractions/wutmp>
# rotated logs
/var/log/wtmp.@{d} r,
/var/log/btmp.@{d} r,
# Despite listing information about consoles, <abstractions/consoles> does not
# seem to be needed:
# - Current logged-in users and their terminals is grabbed from files listed
# in <abstractions/wutmp>
# - Any additional information about the terminals is obtained via a
# combination of dirfd=openat(AT_FDCWD, "/dev", O_RDONLY|O_PATH|O_DIRECTORY)
# and newfstatat(dirfd, terminal_name, out_ptr)
# - O_PATH fds bypass mediation so /dev/ r, is not needed for the first step
# - fstatat does not require permissions on the file itself, as stated in its
# man page
# Overall result: the above calls are not mediated by LSMs
@{coreutil_dirs}who mr,
# who sends the "exists" signal via kill(pid, 0)
capability kill,
# Deny the writes allowed by abstractions/wutmp
audit deny /var/** w,
audit deny @{run}/utmp w,
include if exists <local/who>
}