List audit rules with auditctl -l
In this step, you will learn how to list the current audit rules configured on the system using the auditctl
command. The Linux Audit Daemon (auditd
) is a powerful tool for tracking security-relevant information on your system. Audit rules define what events the system should log.
The auditctl
command is used to control the audit daemon. To list the currently loaded audit rules, you use the -l
option.
Open the terminal if you haven't already. You can do this by clicking the Xfce Terminal icon on the left side of the desktop.
Now, type the following command in the terminal and press Enter:
sudo auditctl -l
You might see output similar to this:
-w /etc/passwd -p wa -k passwd_changes
-w /etc/shadow -p wa -k shadow_changes
-w /etc/gshadow -p wa -k gshadow_changes
-w /etc/group -p wa -k group_changes
-w /etc/sudoers -p wa -k sudoers_changes
-w /etc/sudoers.d/ -p wa -k sudoers_changes
-w /var/log/faillog -p wa -k logins
-w /var/log/lastlog -p wa -k logins
-w /var/log/tallylog -p wa -k logins
-w /var/run/utmp -p wa -k session
-w /var/log/wtmp -p wa -k session
-w /var/log/btmp -p wa -k session
-a always,exit -F arch=b32 -S open,creat,truncate,ftruncate,chmod,fchmod,chown,fchown,setxattr,lsetxattr,fsetxattr,removexattr,lremovexattr,fremovexattr -F auid>=1000 -F auid!=unset -k access
-a always,exit -F arch=b64 -S open,creat,truncate,ftruncate,chmod,fchmod,chown,fchown,setxattr,lsetxattr,fsetxattr,removexattr,lremovexattr,fremovexattr -F auid>=1000 -F auid!=unset -k access
-a always,exit -F arch=b32 -S execve -F auid>=1000 -F auid!=unset -k exec
-a always,exit -F arch=b64 -S execve -F auid>=1000 -F auid!=unset -k exec
-a always,exit -F arch=b32 -S unlink,unlinkat,rename,renameat -F auid>=1000 -F auid!=unset -k delete
-a always,exit -F arch=b64 -S unlink,unlinkat,rename,renameat -F auid>=1000 -F auid!=unset -k delete
-a always,exit -F arch=b32 -S rmdir -F auid>=1000 -F auid!=unset -k delete
-a always,exit -F arch=b64 -S rmdir -F auid>=1000 -F auid!=unset -k delete
-a always,exit -F arch=b32 -S mount -F auid>=1000 -F auid!=unset -k mount
-a always,exit -F arch=b64 -S mount -F auid>=1000 -F auid!=unset -k mount
-a always,exit -F arch=b32 -S swapon -F auid>=1000 -F auid!=unset -k swapon
-a always,exit -F arch=b64 -S swapon -F auid>=1000 -F auid!=unset -k swapon
-a always,exit -F arch=b32 -S swapoff -F auid>=1000 -F auid!=unset -k swapoff
-a always,exit -F arch=b64 -S swapoff -F auid>=1000 -F auid!=unset -k swapoff
-a always,exit -F arch=b32 -S acct -F auid>=1000 -F auid!=unset -k acct
-a always,exit -F arch=b64 -S acct -F auid>=1000 -F auid!=unset -k acct
-a always,exit -F arch=b32 -S settimeofday,adjtimex,stime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b64 -S settimeofday,adjtimex,stime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b32 -S clock_settime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b64 -S clock_settime -F auid>=1000 -F auid!=unset -k time-change
-a always,exit -F arch=b32 -S sethostname,setdomainname -F auid>=1000 -F auid!=unset -k system-locale
-a always,exit -F arch=b64 -S sethostname,setdomainname -F auid>=1000 -F auid!=unset -k system-locale
-a always,exit -F arch=b32 -S init_module,finit_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b64 -S init_module,finit_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b32 -S creat_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b64 -S creat_module,delete_module -F auid>=1000 -F auid!=unset -k modules
-a always,exit -F arch=b32 -S syslog -F auid>=1000 -F auid!=unset -k syslog
-a always,exit -F arch=b64 -S syslog -F auid>=1000 -F auid!=unset -k syslog
-a always,exit -F arch=b32 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec
-a always,exit -F arch=b64 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec
-a always,exit -F arch=b32 -S bpf -F auid>=1000 -F auid!=unset -k bpf
-a always,exit -F arch=b64 -S bpf -F auid>=1000 -F auid!=unset -k bpf
-a always,exit -F arch=b32 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify
-a always,exit -F arch=b64 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify
-a always,exit -F arch=b32 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event
-a always,exit -F arch=b64 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event
-a always,exit -F arch=b32 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring
-a always,exit -F arch=b64 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring
-a always,exit -F arch=b32 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle
-a always,exit -F arch=b64 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle
-a always,exit -F arch=b32 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle
-a always,exit -F arch=b64 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle
-a always,exit -F arch=b32 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice
-a always,exit -F arch=b64 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice
-a always,exit -F arch=b32 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv
-a always,exit -F arch=b64 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv
-a always,exit -F arch=b32 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev
-a always,exit -F arch=b64 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev
-a always,exit -F arch=b32 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace
-a always,exit -F arch=b64 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace
-a always,exit -F arch=b32 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp
-a always,exit -F arch=b64 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp
-a always,exit -F arch=b32 -S finit_module -F auid>=1000 -F auid!=unset -k finit_module
-a always,exit -F arch=b64 -S finit_module -F auid>=1000 -F auid!=unset -k finit_module
-a always,exit -F arch=b32 -S delete_module -F auid>=1000 -F auid!=unset -k delete_module
-a always,exit -F arch=b64 -S delete_module -F auid>=1000 -F auid!=unset -k delete_module
-a always,exit -F arch=b32 -S init_module -F auid>=1000 -F auid!=unset -k init_module
-a always,exit -F arch=b64 -S init_module -F auid>=1000 -F auid!=unset -k init_module
-a always,exit -F arch=b32 -S creat_module -F auid>=1000 -F auid!=unset -k creat_module
-a always,exit -F arch=b64 -S creat_module -F auid>=1000 -F auid!=unset -k creat_module
-a always,exit -F arch=b32 -S syslog -F auid>=1000 -F auid!=unset -k syslog
-a always,exit -F arch=b64 -S syslog -F auid>=1000 -F auid!=unset -k syslog
-a always,exit -F arch=b32 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec_load
-a always,exit -F arch=b64 -S kexec_load -F auid>=1000 -F auid!=unset -k kexec_load
-a always,exit -F arch=b32 -S bpf -F auid>=1000 -F auid!=unset -k bpf
-a always,exit -F arch=b64 -S bpf -F auid>=1000 -F auid!=unset -k bpf
-a always,exit -F arch=b32 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify_init
-a always,exit -F arch=b64 -S fanotify_init -F auid>=1000 -F auid!=unset -k fanotify_init
-a always,exit -F arch=b32 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event_open
-a always,exit -F arch=b64 -S perf_event_open -F auid>=1000 -F auid!=unset -k perf_event_open
-a always,exit -F arch=b32 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring_setup
-a always,exit -F arch=b64 -S io_uring_setup -F auid>=1000 -F auid!=unset -k io_uring_setup
-a always,exit -F arch=b32 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle_at
-a always,exit -F arch=b64 -S open_by_handle_at -F auid>=1000 -F auid!=unset -k open_by_handle_at
-a always,exit -F arch=b32 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle_at
-a always,exit -F arch=b64 -S name_to_handle_at -F auid>=1000 -F auid!=unset -k name_to_handle_at
-a always,exit -F arch=b32 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice
-a always,exit -F arch=b64 -S vmsplice -F auid>=1000 -F auid!=unset -k vmsplice
-a always,exit -F arch=b32 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv
-a always,exit -F arch=b64 -S process_vm_readv -F auid>=1000 -F auid!=unset -k process_vm_readv
-a always,exit -F arch=b32 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev
-a always,exit -F arch=b64 -S process_vm_writev -F auid>=1000 -F auid!=unset -k process_vm_writev
-a always,exit -F arch=b32 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace
-a always,exit -F arch=b64 -S ptrace -F auid>=1000 -F auid!=unset -k ptrace
-a always,exit -F arch=b32 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp
-a always,exit -F arch=b64 -S kcmp -F auid>=1000 -F auid!=unset -k kcmp
This output shows the rules that are currently active in the audit system. Each line represents a rule. Don't worry about understanding every detail of the rules right now. The important part is that you can see the list of rules.
The -w
option is used to watch a specific file or directory for changes. The -a
option is used to add a rule. The -S
option specifies system calls to audit.
Click Continue to proceed to the next step.