Round 328: Auditctl ext, Ausearch ext, Aureport ext, Aulast ext, Autrace ext (20 commands)

ober

51e53eac25b725d066a525091b94d13c7bd9bf6e

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index c377442..d706607 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 328 — Auditctl ext, Ausearch ext, Aureport ext, Aulast ext, Autrace ext
+
+| Feature | Status | Notes |
+|---------|--------|-------|
+| `auditctl-list` | :orange_circle: | List audit rules |
+| `auditctl-add` | :orange_circle: | Add audit rule |
+| `auditctl-delete` | :orange_circle: | Delete audit rule |
+| `auditctl-status` | :orange_circle: | Show audit status |
+| `ausearch-event` | :orange_circle: | Search by event ID |
+| `ausearch-user` | :orange_circle: | Search by user |
+| `ausearch-file` | :orange_circle: | Search by file |
+| `ausearch-syscall` | :orange_circle: | Search by syscall |
+| `aureport-summary` | :orange_circle: | Show summary report |
+| `aureport-auth` | :orange_circle: | Authentication report |
+| `aureport-login` | :orange_circle: | Login report |
+| `aureport-file` | :orange_circle: | File access report |
+| `aulast-show` | :orange_circle: | Show last logins |
+| `aulast-user` | :orange_circle: | Last logins by user |
+| `aulast-host` | :orange_circle: | Last logins by host |
+| `aulast-tty` | :orange_circle: | Last logins by TTY |
+| `autrace-run` | :orange_circle: | Trace command |
+| `autrace-analyze` | :orange_circle: | Analyze trace |
+| `autrace-report` | :orange_circle: | Generate trace report |
+| `autrace-delete` | :orange_circle: | Delete trace rules |
+
 ### Round 327 — Fstrim ext, Swapctl ext, Inotify ext, Fanotify ext, Dnotify ext
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 240cb17..d04f053 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -24439,4 +24439,54 @@
   (let* ((echo (app-state-echo app)))
     (echo-read-string echo "Directory: "
       (lambda (dir)
-        (echo-message! echo (str "Dnotify: background watch on " dir))))))
\ No newline at end of file
+        (echo-message! echo (str "Dnotify: background watch on " dir))))))
+
+;;; Round 328 — Aureport ext, Aulast ext, Autrace ext (batch 2)
+
+(def (cmd-aureport-login app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Aureport: showing login report")))
+
+(def (cmd-aureport-file app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Aureport: showing file access report")))
+
+(def (cmd-aulast-show app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Aulast: showing last logins")))
+
+(def (cmd-aulast-user app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Username: "
+      (lambda (user)
+        (echo-message! echo (str "Aulast: showing logins for " user))))))
+
+(def (cmd-aulast-host app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Host: "
+      (lambda (host)
+        (echo-message! echo (str "Aulast: showing logins from " host))))))
+
+(def (cmd-aulast-tty app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "TTY: "
+      (lambda (tty)
+        (echo-message! echo (str "Aulast: showing logins on " tty))))))
+
+(def (cmd-autrace-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Command to trace: "
+      (lambda (cmd)
+        (echo-message! echo (str "Autrace: tracing " cmd))))))
+
+(def (cmd-autrace-analyze app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Autrace: analyzing trace results")))
+
+(def (cmd-autrace-report app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Autrace: generating report")))
+
+(def (cmd-autrace-delete app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Autrace: deleting trace rules")))
\ No newline at end of file
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 9b44253..311b7ce 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -25146,3 +25146,57 @@
       (lambda (path)
         (echo-message! echo (str "Inotify: monitoring " path))))))
 
+;;; Round 328 — Auditctl ext, Ausearch ext, Aureport ext, Aulast ext, Autrace ext (batch 1)
+
+(def (cmd-auditctl-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Auditctl: listing rules")))
+
+(def (cmd-auditctl-add app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Rule spec: "
+      (lambda (rule)
+        (echo-message! echo (str "Auditctl: adding rule " rule))))))
+
+(def (cmd-auditctl-delete app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Rule to delete: "
+      (lambda (rule)
+        (echo-message! echo (str "Auditctl: deleting rule " rule))))))
+
+(def (cmd-auditctl-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Auditctl: showing audit status")))
+
+(def (cmd-ausearch-event app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Event ID: "
+      (lambda (id)
+        (echo-message! echo (str "Ausearch: searching event " id))))))
+
+(def (cmd-ausearch-user app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Username: "
+      (lambda (user)
+        (echo-message! echo (str "Ausearch: searching events for " user))))))
+
+(def (cmd-ausearch-file app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "File path: "
+      (lambda (file)
+        (echo-message! echo (str "Ausearch: searching events for " file))))))
+
+(def (cmd-ausearch-syscall app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Syscall: "
+      (lambda (sc)
+        (echo-message! echo (str "Ausearch: searching syscall " sc))))))
+
+(def (cmd-aureport-summary app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Aureport: showing summary")))
+
+(def (cmd-aureport-auth app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Aureport: showing authentication report")))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index ea5e107..76143ea 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -8305,4 +8305,25 @@
   (register-command! 'dnotify-recursive cmd-dnotify-recursive)
   (register-command! 'dnotify-event cmd-dnotify-event)
   (register-command! 'dnotify-background cmd-dnotify-background)
+  ;; Round 328
+  (register-command! 'auditctl-list cmd-auditctl-list)
+  (register-command! 'auditctl-add cmd-auditctl-add)
+  (register-command! 'auditctl-delete cmd-auditctl-delete)
+  (register-command! 'auditctl-status cmd-auditctl-status)
+  (register-command! 'ausearch-event cmd-ausearch-event)
+  (register-command! 'ausearch-user cmd-ausearch-user)
+  (register-command! 'ausearch-file cmd-ausearch-file)
+  (register-command! 'ausearch-syscall cmd-ausearch-syscall)
+  (register-command! 'aureport-summary cmd-aureport-summary)
+  (register-command! 'aureport-auth cmd-aureport-auth)
+  (register-command! 'aureport-login cmd-aureport-login)
+  (register-command! 'aureport-file cmd-aureport-file)
+  (register-command! 'aulast-show cmd-aulast-show)
+  (register-command! 'aulast-user cmd-aulast-user)
+  (register-command! 'aulast-host cmd-aulast-host)
+  (register-command! 'aulast-tty cmd-aulast-tty)
+  (register-command! 'autrace-run cmd-autrace-run)
+  (register-command! 'autrace-analyze cmd-autrace-analyze)
+  (register-command! 'autrace-report cmd-autrace-report)
+  (register-command! 'autrace-delete cmd-autrace-delete)
 )