Bugs Correction

This commit is contained in:
Johnny
2026-04-06 06:07:02 +02:00
parent 751dc8892c
commit 4980d8cf3c
34 changed files with 20541 additions and 35 deletions

View File

@@ -0,0 +1,42 @@
2026-04-05 20:37:25 | INFO | [1/5] Mise à jour système
2026-04-05 20:37:25 | INFO | Commande: sudo apt-get update
2026-04-05 20:37:25 | INFO | [dry-run] sudo apt-get update
2026-04-05 20:37:25 | INFO | Commande: sudo apt-get dist-upgrade -y
2026-04-05 20:37:25 | INFO | [dry-run] sudo apt-get dist-upgrade -y
2026-04-05 20:37:25 | INFO | Commande: sudo apt-get autoremove -y
2026-04-05 20:37:25 | INFO | [dry-run] sudo apt-get autoremove -y
2026-04-05 20:37:25 | INFO | Commande: sudo apt-get autoclean
2026-04-05 20:37:25 | INFO | [dry-run] sudo apt-get autoclean
2026-04-05 20:37:25 | INFO | -> OK (0.0s)
2026-04-05 20:37:25 | INFO | [2/5] Audit Lynis
2026-04-05 20:37:25 | INFO | Commande: sudo lynis audit system --quick
2026-04-05 20:37:25 | INFO | [dry-run] sudo lynis audit system --quick
2026-04-05 20:37:25 | INFO | Ecriture du fichier /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-203725-lynis.log
2026-04-05 20:37:25 | INFO | [dry-run] write /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-203725-lynis.log
2026-04-05 20:37:25 | INFO | -> OK (0.0s)
2026-04-05 20:37:25 | INFO | [3/5] Vérification rootkits
2026-04-05 20:37:25 | INFO | Commande: sudo rkhunter --update
2026-04-05 20:37:25 | INFO | [dry-run] sudo rkhunter --update
2026-04-05 20:37:25 | INFO | Commande: sudo rkhunter --propupd
2026-04-05 20:37:25 | INFO | [dry-run] sudo rkhunter --propupd
2026-04-05 20:37:25 | INFO | Commande: sudo rkhunter --check --skip-keypress --report-warnings-only
2026-04-05 20:37:25 | INFO | [dry-run] sudo rkhunter --check --skip-keypress --report-warnings-only
2026-04-05 20:37:25 | INFO | Commande: sudo chkrootkit -q
2026-04-05 20:37:25 | INFO | [dry-run] sudo chkrootkit -q
2026-04-05 20:37:25 | INFO | Ecriture du fichier /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-203725-rootkit-report.json
2026-04-05 20:37:25 | INFO | [dry-run] write /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-203725-rootkit-report.json
2026-04-05 20:37:25 | INFO | -> OK (0.0s)
2026-04-05 20:37:25 | INFO | [4/5] Vérification / autoconfig du firewall
2026-04-05 20:37:25 | INFO | Commande: sudo ufw default deny incoming
2026-04-05 20:37:25 | INFO | [dry-run] sudo ufw default deny incoming
2026-04-05 20:37:25 | INFO | Commande: sudo ufw default allow outgoing
2026-04-05 20:37:25 | INFO | [dry-run] sudo ufw default allow outgoing
2026-04-05 20:37:25 | INFO | Commande: sudo ufw status
2026-04-05 20:37:25 | INFO | [dry-run] sudo ufw status
2026-04-05 20:37:25 | INFO | Commande: sudo ufw allow 22/tcp
2026-04-05 20:37:25 | INFO | [dry-run] sudo ufw allow 22/tcp
2026-04-05 20:37:25 | INFO | Commande: sudo ufw --force enable
2026-04-05 20:37:25 | INFO | [dry-run] sudo ufw --force enable
2026-04-05 20:37:25 | INFO | -> OK (0.0s)
2026-04-05 20:37:25 | INFO | [5/5] Rotation des logs
2026-04-05 20:37:25 | INFO | -> OK (0.0s)

View File

@@ -0,0 +1,35 @@
2026-04-05 21:49:29 | INFO | [1/1] Utilitaires pratiques
2026-04-05 21:49:29 | INFO | Commande: sudo apt-get update
2026-04-05 21:49:29 | INFO | [dry-run] sudo apt-get update
2026-04-05 21:49:29 | INFO | Commande: sudo systemctl enable --now fail2ban.service
2026-04-05 21:49:29 | INFO | [dry-run] sudo systemctl enable --now fail2ban.service
2026-04-05 21:49:29 | INFO | Commande: sudo systemctl disable --now avahi-daemon
2026-04-05 21:49:29 | INFO | [dry-run] sudo systemctl disable --now avahi-daemon
2026-04-05 21:49:29 | INFO | Commande: sudo systemctl enable --now apparmor
2026-04-05 21:49:29 | INFO | [dry-run] sudo systemctl enable --now apparmor
2026-04-05 21:49:29 | INFO | Commande: sudo systemctl enable --now clamav-freshclam
2026-04-05 21:49:29 | INFO | [dry-run] sudo systemctl enable --now clamav-freshclam
2026-04-05 21:49:29 | INFO | Commande: sudo systemctl enable --now clamav-daemon
2026-04-05 21:49:29 | INFO | [dry-run] sudo systemctl enable --now clamav-daemon
2026-04-05 21:49:29 | INFO | Commande: sudo aideinit
2026-04-05 21:49:29 | INFO | [dry-run] sudo aideinit
2026-04-05 21:49:29 | INFO | Commande: sudo systemctl enable --now aidecheck.timer
2026-04-05 21:49:29 | INFO | [dry-run] sudo systemctl enable --now aidecheck.timer
2026-04-05 21:49:29 | ERROR | Task failed: utilities_setup
Traceback (most recent call last):
File "/home/tuxgyver/scripts/securecheck/securecheck/executor.py", line 350, in execute_tasks
result = task.handler(context)
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 554, in <lambda>
handler=lambda context, _task=task, _func=func: _func(context, _task),
~~~~~^^^^^^^^^^^^^^^^
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 418, in utilities_setup
if wazuh_conf.exists():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/pathlib/_abc.py", line 450, in exists
self.stat(follow_symlinks=follow_symlinks)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/pathlib/_local.py", line 517, in stat
return os.stat(self, follow_symlinks=follow_symlinks)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'
2026-04-05 21:49:29 | ERROR | -> ECHEC: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'

View File

@@ -0,0 +1,35 @@
2026-04-05 21:49:40 | INFO | [1/1] Utilitaires pratiques
2026-04-05 21:49:40 | INFO | Commande: sudo apt-get update
2026-04-05 21:49:40 | INFO | [dry-run] sudo apt-get update
2026-04-05 21:49:40 | INFO | Commande: sudo systemctl enable --now fail2ban.service
2026-04-05 21:49:40 | INFO | [dry-run] sudo systemctl enable --now fail2ban.service
2026-04-05 21:49:40 | INFO | Commande: sudo systemctl disable --now avahi-daemon
2026-04-05 21:49:40 | INFO | [dry-run] sudo systemctl disable --now avahi-daemon
2026-04-05 21:49:40 | INFO | Commande: sudo systemctl enable --now apparmor
2026-04-05 21:49:40 | INFO | [dry-run] sudo systemctl enable --now apparmor
2026-04-05 21:49:40 | INFO | Commande: sudo systemctl enable --now clamav-freshclam
2026-04-05 21:49:40 | INFO | [dry-run] sudo systemctl enable --now clamav-freshclam
2026-04-05 21:49:40 | INFO | Commande: sudo systemctl enable --now clamav-daemon
2026-04-05 21:49:40 | INFO | [dry-run] sudo systemctl enable --now clamav-daemon
2026-04-05 21:49:40 | INFO | Commande: sudo aideinit
2026-04-05 21:49:40 | INFO | [dry-run] sudo aideinit
2026-04-05 21:49:40 | INFO | Commande: sudo systemctl enable --now aidecheck.timer
2026-04-05 21:49:40 | INFO | [dry-run] sudo systemctl enable --now aidecheck.timer
2026-04-05 21:49:40 | ERROR | Task failed: utilities_setup
Traceback (most recent call last):
File "/home/tuxgyver/scripts/securecheck/securecheck/executor.py", line 350, in execute_tasks
result = task.handler(context)
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 557, in <lambda>
handler=lambda context, _task=task, _func=func: _func(context, _task),
~~~~~^^^^^^^^^^^^^^^^
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 418, in utilities_setup
if wazuh_conf.exists():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/pathlib/_abc.py", line 450, in exists
self.stat(follow_symlinks=follow_symlinks)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/pathlib/_local.py", line 517, in stat
return os.stat(self, follow_symlinks=follow_symlinks)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'
2026-04-05 21:49:40 | ERROR | -> ECHEC: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'

View File

@@ -0,0 +1,35 @@
2026-04-05 21:50:29 | INFO | [1/1] Utilitaires pratiques
2026-04-05 21:50:29 | INFO | Commande: sudo apt-get update
2026-04-05 21:50:29 | INFO | [dry-run] sudo apt-get update
2026-04-05 21:50:30 | INFO | Commande: sudo systemctl enable --now fail2ban.service
2026-04-05 21:50:30 | INFO | [dry-run] sudo systemctl enable --now fail2ban.service
2026-04-05 21:50:30 | INFO | Commande: sudo systemctl disable --now avahi-daemon
2026-04-05 21:50:30 | INFO | [dry-run] sudo systemctl disable --now avahi-daemon
2026-04-05 21:50:30 | INFO | Commande: sudo systemctl enable --now apparmor
2026-04-05 21:50:30 | INFO | [dry-run] sudo systemctl enable --now apparmor
2026-04-05 21:50:30 | INFO | Commande: sudo systemctl enable --now clamav-freshclam
2026-04-05 21:50:30 | INFO | [dry-run] sudo systemctl enable --now clamav-freshclam
2026-04-05 21:50:30 | INFO | Commande: sudo systemctl enable --now clamav-daemon
2026-04-05 21:50:30 | INFO | [dry-run] sudo systemctl enable --now clamav-daemon
2026-04-05 21:50:30 | INFO | Commande: sudo aideinit
2026-04-05 21:50:30 | INFO | [dry-run] sudo aideinit
2026-04-05 21:50:30 | INFO | Commande: sudo systemctl enable --now aidecheck.timer
2026-04-05 21:50:30 | INFO | [dry-run] sudo systemctl enable --now aidecheck.timer
2026-04-05 21:50:30 | ERROR | Task failed: utilities_setup
Traceback (most recent call last):
File "/home/tuxgyver/scripts/securecheck/securecheck/executor.py", line 350, in execute_tasks
result = task.handler(context)
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 560, in <lambda>
handler=lambda context, _task=task, _func=func: _func(context, _task),
~~~~~^^^^^^^^^^^^^^^^
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 418, in utilities_setup
if wazuh_conf.exists():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/pathlib/_abc.py", line 450, in exists
self.stat(follow_symlinks=follow_symlinks)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/pathlib/_local.py", line 517, in stat
return os.stat(self, follow_symlinks=follow_symlinks)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'
2026-04-05 21:50:30 | ERROR | -> ECHEC: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'

View File

@@ -0,0 +1,35 @@
2026-04-05 21:50:41 | INFO | [1/1] Utilitaires pratiques
2026-04-05 21:50:41 | INFO | Commande: sudo apt-get update
2026-04-05 21:50:41 | INFO | [dry-run] sudo apt-get update
2026-04-05 21:50:41 | INFO | Commande: sudo systemctl enable --now fail2ban.service
2026-04-05 21:50:41 | INFO | [dry-run] sudo systemctl enable --now fail2ban.service
2026-04-05 21:50:41 | INFO | Commande: sudo systemctl disable --now avahi-daemon
2026-04-05 21:50:41 | INFO | [dry-run] sudo systemctl disable --now avahi-daemon
2026-04-05 21:50:41 | INFO | Commande: sudo systemctl enable --now apparmor
2026-04-05 21:50:41 | INFO | [dry-run] sudo systemctl enable --now apparmor
2026-04-05 21:50:41 | INFO | Commande: sudo systemctl enable --now clamav-freshclam
2026-04-05 21:50:41 | INFO | [dry-run] sudo systemctl enable --now clamav-freshclam
2026-04-05 21:50:41 | INFO | Commande: sudo systemctl enable --now clamav-daemon
2026-04-05 21:50:41 | INFO | [dry-run] sudo systemctl enable --now clamav-daemon
2026-04-05 21:50:42 | INFO | Commande: sudo aideinit
2026-04-05 21:50:42 | INFO | [dry-run] sudo aideinit
2026-04-05 21:50:42 | INFO | Commande: sudo systemctl enable --now aidecheck.timer
2026-04-05 21:50:42 | INFO | [dry-run] sudo systemctl enable --now aidecheck.timer
2026-04-05 21:50:42 | ERROR | Task failed: utilities_setup
Traceback (most recent call last):
File "/home/tuxgyver/scripts/securecheck/securecheck/executor.py", line 350, in execute_tasks
result = task.handler(context)
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 557, in <lambda>
handler=lambda context, _task=task, _func=func: _func(context, _task),
~~~~~^^^^^^^^^^^^^^^^
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 419, in utilities_setup
if wazuh_conf.exists() and os.access(wazuh_conf, os.R_OK):
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/pathlib/_abc.py", line 450, in exists
self.stat(follow_symlinks=follow_symlinks)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/pathlib/_local.py", line 517, in stat
return os.stat(self, follow_symlinks=follow_symlinks)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'
2026-04-05 21:50:42 | ERROR | -> ECHEC: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'

View File

@@ -0,0 +1,35 @@
2026-04-05 21:50:55 | INFO | [1/1] Utilitaires pratiques
2026-04-05 21:50:55 | INFO | Commande: sudo apt-get update
2026-04-05 21:50:55 | INFO | [dry-run] sudo apt-get update
2026-04-05 21:50:55 | INFO | Commande: sudo systemctl enable --now fail2ban.service
2026-04-05 21:50:55 | INFO | [dry-run] sudo systemctl enable --now fail2ban.service
2026-04-05 21:50:55 | INFO | Commande: sudo systemctl disable --now avahi-daemon
2026-04-05 21:50:55 | INFO | [dry-run] sudo systemctl disable --now avahi-daemon
2026-04-05 21:50:55 | INFO | Commande: sudo systemctl enable --now apparmor
2026-04-05 21:50:55 | INFO | [dry-run] sudo systemctl enable --now apparmor
2026-04-05 21:50:55 | INFO | Commande: sudo systemctl enable --now clamav-freshclam
2026-04-05 21:50:55 | INFO | [dry-run] sudo systemctl enable --now clamav-freshclam
2026-04-05 21:50:55 | INFO | Commande: sudo systemctl enable --now clamav-daemon
2026-04-05 21:50:55 | INFO | [dry-run] sudo systemctl enable --now clamav-daemon
2026-04-05 21:50:55 | INFO | Commande: sudo aideinit
2026-04-05 21:50:55 | INFO | [dry-run] sudo aideinit
2026-04-05 21:50:55 | INFO | Commande: sudo systemctl enable --now aidecheck.timer
2026-04-05 21:50:55 | INFO | [dry-run] sudo systemctl enable --now aidecheck.timer
2026-04-05 21:50:55 | ERROR | Task failed: utilities_setup
Traceback (most recent call last):
File "/home/tuxgyver/scripts/securecheck/securecheck/executor.py", line 350, in execute_tasks
result = task.handler(context)
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 553, in <lambda>
handler=lambda context, _task=task, _func=func: _func(context, _task),
~~~~~^^^^^^^^^^^^^^^^
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 419, in utilities_setup
if wazuh_conf.exists() and os.access(wazuh_conf, os.R_OK):
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/pathlib/_abc.py", line 450, in exists
self.stat(follow_symlinks=follow_symlinks)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/pathlib/_local.py", line 517, in stat
return os.stat(self, follow_symlinks=follow_symlinks)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'
2026-04-05 21:50:55 | ERROR | -> ECHEC: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'

View File

@@ -0,0 +1,20 @@
2026-04-05 21:51:18 | INFO | [1/1] Utilitaires pratiques
2026-04-05 21:51:18 | INFO | Commande: sudo apt-get update
2026-04-05 21:51:18 | INFO | [dry-run] sudo apt-get update
2026-04-05 21:51:18 | INFO | Commande: sudo systemctl enable --now fail2ban.service
2026-04-05 21:51:18 | INFO | [dry-run] sudo systemctl enable --now fail2ban.service
2026-04-05 21:51:18 | INFO | Commande: sudo systemctl disable --now avahi-daemon
2026-04-05 21:51:18 | INFO | [dry-run] sudo systemctl disable --now avahi-daemon
2026-04-05 21:51:18 | INFO | Commande: sudo systemctl enable --now apparmor
2026-04-05 21:51:18 | INFO | [dry-run] sudo systemctl enable --now apparmor
2026-04-05 21:51:18 | INFO | Commande: sudo systemctl enable --now clamav-freshclam
2026-04-05 21:51:18 | INFO | [dry-run] sudo systemctl enable --now clamav-freshclam
2026-04-05 21:51:18 | INFO | Commande: sudo systemctl enable --now clamav-daemon
2026-04-05 21:51:18 | INFO | [dry-run] sudo systemctl enable --now clamav-daemon
2026-04-05 21:51:18 | INFO | Commande: sudo aideinit
2026-04-05 21:51:18 | INFO | [dry-run] sudo aideinit
2026-04-05 21:51:18 | INFO | Commande: sudo systemctl enable --now aidecheck.timer
2026-04-05 21:51:18 | INFO | [dry-run] sudo systemctl enable --now aidecheck.timer
2026-04-05 21:51:18 | INFO | Commande: sudo systemctl enable --now wazuh-agent
2026-04-05 21:51:18 | INFO | [dry-run] sudo systemctl enable --now wazuh-agent
2026-04-05 21:51:18 | INFO | -> OK (0.3s)

View File

@@ -0,0 +1,42 @@
2026-04-05 21:59:58 | INFO | [1/5] Mise à jour système
2026-04-05 21:59:58 | INFO | Commande: sudo apt-get update
2026-04-05 21:59:58 | INFO | [dry-run] sudo apt-get update
2026-04-05 21:59:58 | INFO | Commande: sudo apt-get dist-upgrade -y
2026-04-05 21:59:58 | INFO | [dry-run] sudo apt-get dist-upgrade -y
2026-04-05 21:59:58 | INFO | Commande: sudo apt-get autoremove -y
2026-04-05 21:59:58 | INFO | [dry-run] sudo apt-get autoremove -y
2026-04-05 21:59:58 | INFO | Commande: sudo apt-get autoclean
2026-04-05 21:59:58 | INFO | [dry-run] sudo apt-get autoclean
2026-04-05 21:59:58 | INFO | -> OK (0.0s)
2026-04-05 21:59:58 | INFO | [2/5] Audit Lynis
2026-04-05 21:59:58 | INFO | Commande: sudo lynis audit system --quick
2026-04-05 21:59:58 | INFO | [dry-run] sudo lynis audit system --quick
2026-04-05 21:59:58 | INFO | Ecriture du fichier /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-215958-lynis.log
2026-04-05 21:59:58 | INFO | [dry-run] write /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-215958-lynis.log
2026-04-05 21:59:58 | INFO | -> OK (0.0s)
2026-04-05 21:59:58 | INFO | [3/5] Vérification rootkits
2026-04-05 21:59:58 | INFO | Commande: sudo rkhunter --update
2026-04-05 21:59:58 | INFO | [dry-run] sudo rkhunter --update
2026-04-05 21:59:58 | INFO | Commande: sudo rkhunter --propupd
2026-04-05 21:59:58 | INFO | [dry-run] sudo rkhunter --propupd
2026-04-05 21:59:58 | INFO | Commande: sudo rkhunter --check --skip-keypress --report-warnings-only
2026-04-05 21:59:58 | INFO | [dry-run] sudo rkhunter --check --skip-keypress --report-warnings-only
2026-04-05 21:59:58 | INFO | Commande: sudo chkrootkit -q
2026-04-05 21:59:58 | INFO | [dry-run] sudo chkrootkit -q
2026-04-05 21:59:58 | INFO | Ecriture du fichier /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-215958-rootkit-report.json
2026-04-05 21:59:58 | INFO | [dry-run] write /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-215958-rootkit-report.json
2026-04-05 21:59:58 | INFO | -> OK (0.0s)
2026-04-05 21:59:58 | INFO | [4/5] Vérification / autoconfig du firewall
2026-04-05 21:59:58 | INFO | Commande: sudo ufw default deny incoming
2026-04-05 21:59:58 | INFO | [dry-run] sudo ufw default deny incoming
2026-04-05 21:59:58 | INFO | Commande: sudo ufw default allow outgoing
2026-04-05 21:59:58 | INFO | [dry-run] sudo ufw default allow outgoing
2026-04-05 21:59:58 | INFO | Commande: sudo ufw status
2026-04-05 21:59:58 | INFO | [dry-run] sudo ufw status
2026-04-05 21:59:58 | INFO | Commande: sudo ufw allow 22/tcp
2026-04-05 21:59:58 | INFO | [dry-run] sudo ufw allow 22/tcp
2026-04-05 21:59:58 | INFO | Commande: sudo ufw --force enable
2026-04-05 21:59:58 | INFO | [dry-run] sudo ufw --force enable
2026-04-05 21:59:58 | INFO | -> OK (0.0s)
2026-04-05 21:59:58 | INFO | [5/5] Rotation des logs
2026-04-05 21:59:58 | INFO | -> OK (0.0s)

View File

@@ -0,0 +1,42 @@
2026-04-05 22:05:03 | INFO | [1/5] Mise à jour système
2026-04-05 22:05:03 | INFO | Commande: sudo apt-get update
2026-04-05 22:05:03 | INFO | [dry-run] sudo apt-get update
2026-04-05 22:05:03 | INFO | Commande: sudo apt-get dist-upgrade -y
2026-04-05 22:05:03 | INFO | [dry-run] sudo apt-get dist-upgrade -y
2026-04-05 22:05:03 | INFO | Commande: sudo apt-get autoremove -y
2026-04-05 22:05:03 | INFO | [dry-run] sudo apt-get autoremove -y
2026-04-05 22:05:03 | INFO | Commande: sudo apt-get autoclean
2026-04-05 22:05:03 | INFO | [dry-run] sudo apt-get autoclean
2026-04-05 22:05:03 | INFO | -> OK (0.0s)
2026-04-05 22:05:03 | INFO | [2/5] Audit Lynis
2026-04-05 22:05:03 | INFO | Commande: sudo lynis audit system --quick
2026-04-05 22:05:03 | INFO | [dry-run] sudo lynis audit system --quick
2026-04-05 22:05:03 | INFO | Ecriture du fichier /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-220503-lynis.log
2026-04-05 22:05:03 | INFO | [dry-run] write /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-220503-lynis.log
2026-04-05 22:05:03 | INFO | -> OK (0.0s)
2026-04-05 22:05:03 | INFO | [3/5] Vérification rootkits
2026-04-05 22:05:03 | INFO | Commande: sudo rkhunter --update
2026-04-05 22:05:03 | INFO | [dry-run] sudo rkhunter --update
2026-04-05 22:05:03 | INFO | Commande: sudo rkhunter --propupd
2026-04-05 22:05:03 | INFO | [dry-run] sudo rkhunter --propupd
2026-04-05 22:05:03 | INFO | Commande: sudo rkhunter --check --skip-keypress --report-warnings-only
2026-04-05 22:05:03 | INFO | [dry-run] sudo rkhunter --check --skip-keypress --report-warnings-only
2026-04-05 22:05:03 | INFO | Commande: sudo chkrootkit -q
2026-04-05 22:05:03 | INFO | [dry-run] sudo chkrootkit -q
2026-04-05 22:05:03 | INFO | Ecriture du fichier /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-220503-rootkit-report.json
2026-04-05 22:05:03 | INFO | [dry-run] write /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-220503-rootkit-report.json
2026-04-05 22:05:03 | INFO | -> OK (0.0s)
2026-04-05 22:05:03 | INFO | [4/5] Vérification / autoconfig du firewall
2026-04-05 22:05:03 | INFO | Commande: sudo ufw default deny incoming
2026-04-05 22:05:03 | INFO | [dry-run] sudo ufw default deny incoming
2026-04-05 22:05:03 | INFO | Commande: sudo ufw default allow outgoing
2026-04-05 22:05:03 | INFO | [dry-run] sudo ufw default allow outgoing
2026-04-05 22:05:03 | INFO | Commande: sudo ufw status
2026-04-05 22:05:03 | INFO | [dry-run] sudo ufw status
2026-04-05 22:05:03 | INFO | Commande: sudo ufw allow 22/tcp
2026-04-05 22:05:03 | INFO | [dry-run] sudo ufw allow 22/tcp
2026-04-05 22:05:03 | INFO | Commande: sudo ufw --force enable
2026-04-05 22:05:03 | INFO | [dry-run] sudo ufw --force enable
2026-04-05 22:05:03 | INFO | -> OK (0.0s)
2026-04-05 22:05:03 | INFO | [5/5] Rotation des logs
2026-04-05 22:05:03 | INFO | -> OK (0.0s)

View File

@@ -194,3 +194,324 @@
2026-04-05 18:37:24 | INFO | Ecriture du fichier /etc/logrotate.d/securecheck
2026-04-05 18:37:24 | INFO | [dry-run] write /etc/logrotate.d/securecheck
2026-04-05 18:37:24 | INFO | -> OK (0.0s)
2026-04-05 20:37:25 | INFO | [1/5] Mise à jour système
2026-04-05 20:37:25 | INFO | Commande: sudo apt-get update
2026-04-05 20:37:25 | INFO | [dry-run] sudo apt-get update
2026-04-05 20:37:25 | INFO | Commande: sudo apt-get dist-upgrade -y
2026-04-05 20:37:25 | INFO | [dry-run] sudo apt-get dist-upgrade -y
2026-04-05 20:37:25 | INFO | Commande: sudo apt-get autoremove -y
2026-04-05 20:37:25 | INFO | [dry-run] sudo apt-get autoremove -y
2026-04-05 20:37:25 | INFO | Commande: sudo apt-get autoclean
2026-04-05 20:37:25 | INFO | [dry-run] sudo apt-get autoclean
2026-04-05 20:37:25 | INFO | -> OK (0.0s)
2026-04-05 20:37:25 | INFO | [2/5] Audit Lynis
2026-04-05 20:37:25 | INFO | Commande: sudo lynis audit system --quick
2026-04-05 20:37:25 | INFO | [dry-run] sudo lynis audit system --quick
2026-04-05 20:37:25 | INFO | Ecriture du fichier /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-203725-lynis.log
2026-04-05 20:37:25 | INFO | [dry-run] write /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-203725-lynis.log
2026-04-05 20:37:25 | INFO | -> OK (0.0s)
2026-04-05 20:37:25 | INFO | [3/5] Vérification rootkits
2026-04-05 20:37:25 | INFO | Commande: sudo rkhunter --update
2026-04-05 20:37:25 | INFO | [dry-run] sudo rkhunter --update
2026-04-05 20:37:25 | INFO | Commande: sudo rkhunter --propupd
2026-04-05 20:37:25 | INFO | [dry-run] sudo rkhunter --propupd
2026-04-05 20:37:25 | INFO | Commande: sudo rkhunter --check --skip-keypress --report-warnings-only
2026-04-05 20:37:25 | INFO | [dry-run] sudo rkhunter --check --skip-keypress --report-warnings-only
2026-04-05 20:37:25 | INFO | Commande: sudo chkrootkit -q
2026-04-05 20:37:25 | INFO | [dry-run] sudo chkrootkit -q
2026-04-05 20:37:25 | INFO | Ecriture du fichier /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-203725-rootkit-report.json
2026-04-05 20:37:25 | INFO | [dry-run] write /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-203725-rootkit-report.json
2026-04-05 20:37:25 | INFO | -> OK (0.0s)
2026-04-05 20:37:25 | INFO | [4/5] Vérification / autoconfig du firewall
2026-04-05 20:37:25 | INFO | Commande: sudo ufw default deny incoming
2026-04-05 20:37:25 | INFO | [dry-run] sudo ufw default deny incoming
2026-04-05 20:37:25 | INFO | Commande: sudo ufw default allow outgoing
2026-04-05 20:37:25 | INFO | [dry-run] sudo ufw default allow outgoing
2026-04-05 20:37:25 | INFO | Commande: sudo ufw status
2026-04-05 20:37:25 | INFO | [dry-run] sudo ufw status
2026-04-05 20:37:25 | INFO | Commande: sudo ufw allow 22/tcp
2026-04-05 20:37:25 | INFO | [dry-run] sudo ufw allow 22/tcp
2026-04-05 20:37:25 | INFO | Commande: sudo ufw --force enable
2026-04-05 20:37:25 | INFO | [dry-run] sudo ufw --force enable
2026-04-05 20:37:25 | INFO | -> OK (0.0s)
2026-04-05 20:37:25 | INFO | [5/5] Rotation des logs
2026-04-05 20:37:25 | INFO | -> OK (0.0s)
2026-04-05 21:49:29 | INFO | [1/1] Utilitaires pratiques
2026-04-05 21:49:29 | INFO | Commande: sudo apt-get update
2026-04-05 21:49:29 | INFO | [dry-run] sudo apt-get update
2026-04-05 21:49:29 | INFO | Commande: sudo systemctl enable --now fail2ban.service
2026-04-05 21:49:29 | INFO | [dry-run] sudo systemctl enable --now fail2ban.service
2026-04-05 21:49:29 | INFO | Commande: sudo systemctl disable --now avahi-daemon
2026-04-05 21:49:29 | INFO | [dry-run] sudo systemctl disable --now avahi-daemon
2026-04-05 21:49:29 | INFO | Commande: sudo systemctl enable --now apparmor
2026-04-05 21:49:29 | INFO | [dry-run] sudo systemctl enable --now apparmor
2026-04-05 21:49:29 | INFO | Commande: sudo systemctl enable --now clamav-freshclam
2026-04-05 21:49:29 | INFO | [dry-run] sudo systemctl enable --now clamav-freshclam
2026-04-05 21:49:29 | INFO | Commande: sudo systemctl enable --now clamav-daemon
2026-04-05 21:49:29 | INFO | [dry-run] sudo systemctl enable --now clamav-daemon
2026-04-05 21:49:29 | INFO | Commande: sudo aideinit
2026-04-05 21:49:29 | INFO | [dry-run] sudo aideinit
2026-04-05 21:49:29 | INFO | Commande: sudo systemctl enable --now aidecheck.timer
2026-04-05 21:49:29 | INFO | [dry-run] sudo systemctl enable --now aidecheck.timer
2026-04-05 21:49:29 | ERROR | Task failed: utilities_setup
Traceback (most recent call last):
File "/home/tuxgyver/scripts/securecheck/securecheck/executor.py", line 350, in execute_tasks
result = task.handler(context)
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 554, in <lambda>
handler=lambda context, _task=task, _func=func: _func(context, _task),
~~~~~^^^^^^^^^^^^^^^^
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 418, in utilities_setup
if wazuh_conf.exists():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/pathlib/_abc.py", line 450, in exists
self.stat(follow_symlinks=follow_symlinks)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/pathlib/_local.py", line 517, in stat
return os.stat(self, follow_symlinks=follow_symlinks)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'
2026-04-05 21:49:29 | ERROR | -> ECHEC: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'
2026-04-05 21:49:40 | INFO | [1/1] Utilitaires pratiques
2026-04-05 21:49:40 | INFO | Commande: sudo apt-get update
2026-04-05 21:49:40 | INFO | [dry-run] sudo apt-get update
2026-04-05 21:49:40 | INFO | Commande: sudo systemctl enable --now fail2ban.service
2026-04-05 21:49:40 | INFO | [dry-run] sudo systemctl enable --now fail2ban.service
2026-04-05 21:49:40 | INFO | Commande: sudo systemctl disable --now avahi-daemon
2026-04-05 21:49:40 | INFO | [dry-run] sudo systemctl disable --now avahi-daemon
2026-04-05 21:49:40 | INFO | Commande: sudo systemctl enable --now apparmor
2026-04-05 21:49:40 | INFO | [dry-run] sudo systemctl enable --now apparmor
2026-04-05 21:49:40 | INFO | Commande: sudo systemctl enable --now clamav-freshclam
2026-04-05 21:49:40 | INFO | [dry-run] sudo systemctl enable --now clamav-freshclam
2026-04-05 21:49:40 | INFO | Commande: sudo systemctl enable --now clamav-daemon
2026-04-05 21:49:40 | INFO | [dry-run] sudo systemctl enable --now clamav-daemon
2026-04-05 21:49:40 | INFO | Commande: sudo aideinit
2026-04-05 21:49:40 | INFO | [dry-run] sudo aideinit
2026-04-05 21:49:40 | INFO | Commande: sudo systemctl enable --now aidecheck.timer
2026-04-05 21:49:40 | INFO | [dry-run] sudo systemctl enable --now aidecheck.timer
2026-04-05 21:49:40 | ERROR | Task failed: utilities_setup
Traceback (most recent call last):
File "/home/tuxgyver/scripts/securecheck/securecheck/executor.py", line 350, in execute_tasks
result = task.handler(context)
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 557, in <lambda>
handler=lambda context, _task=task, _func=func: _func(context, _task),
~~~~~^^^^^^^^^^^^^^^^
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 418, in utilities_setup
if wazuh_conf.exists():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/pathlib/_abc.py", line 450, in exists
self.stat(follow_symlinks=follow_symlinks)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/pathlib/_local.py", line 517, in stat
return os.stat(self, follow_symlinks=follow_symlinks)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'
2026-04-05 21:49:40 | ERROR | -> ECHEC: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'
2026-04-05 21:50:29 | INFO | [1/1] Utilitaires pratiques
2026-04-05 21:50:29 | INFO | Commande: sudo apt-get update
2026-04-05 21:50:29 | INFO | [dry-run] sudo apt-get update
2026-04-05 21:50:30 | INFO | Commande: sudo systemctl enable --now fail2ban.service
2026-04-05 21:50:30 | INFO | [dry-run] sudo systemctl enable --now fail2ban.service
2026-04-05 21:50:30 | INFO | Commande: sudo systemctl disable --now avahi-daemon
2026-04-05 21:50:30 | INFO | [dry-run] sudo systemctl disable --now avahi-daemon
2026-04-05 21:50:30 | INFO | Commande: sudo systemctl enable --now apparmor
2026-04-05 21:50:30 | INFO | [dry-run] sudo systemctl enable --now apparmor
2026-04-05 21:50:30 | INFO | Commande: sudo systemctl enable --now clamav-freshclam
2026-04-05 21:50:30 | INFO | [dry-run] sudo systemctl enable --now clamav-freshclam
2026-04-05 21:50:30 | INFO | Commande: sudo systemctl enable --now clamav-daemon
2026-04-05 21:50:30 | INFO | [dry-run] sudo systemctl enable --now clamav-daemon
2026-04-05 21:50:30 | INFO | Commande: sudo aideinit
2026-04-05 21:50:30 | INFO | [dry-run] sudo aideinit
2026-04-05 21:50:30 | INFO | Commande: sudo systemctl enable --now aidecheck.timer
2026-04-05 21:50:30 | INFO | [dry-run] sudo systemctl enable --now aidecheck.timer
2026-04-05 21:50:30 | ERROR | Task failed: utilities_setup
Traceback (most recent call last):
File "/home/tuxgyver/scripts/securecheck/securecheck/executor.py", line 350, in execute_tasks
result = task.handler(context)
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 560, in <lambda>
handler=lambda context, _task=task, _func=func: _func(context, _task),
~~~~~^^^^^^^^^^^^^^^^
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 418, in utilities_setup
if wazuh_conf.exists():
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/pathlib/_abc.py", line 450, in exists
self.stat(follow_symlinks=follow_symlinks)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/pathlib/_local.py", line 517, in stat
return os.stat(self, follow_symlinks=follow_symlinks)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'
2026-04-05 21:50:30 | ERROR | -> ECHEC: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'
2026-04-05 21:50:41 | INFO | [1/1] Utilitaires pratiques
2026-04-05 21:50:41 | INFO | Commande: sudo apt-get update
2026-04-05 21:50:41 | INFO | [dry-run] sudo apt-get update
2026-04-05 21:50:41 | INFO | Commande: sudo systemctl enable --now fail2ban.service
2026-04-05 21:50:41 | INFO | [dry-run] sudo systemctl enable --now fail2ban.service
2026-04-05 21:50:41 | INFO | Commande: sudo systemctl disable --now avahi-daemon
2026-04-05 21:50:41 | INFO | [dry-run] sudo systemctl disable --now avahi-daemon
2026-04-05 21:50:41 | INFO | Commande: sudo systemctl enable --now apparmor
2026-04-05 21:50:41 | INFO | [dry-run] sudo systemctl enable --now apparmor
2026-04-05 21:50:41 | INFO | Commande: sudo systemctl enable --now clamav-freshclam
2026-04-05 21:50:41 | INFO | [dry-run] sudo systemctl enable --now clamav-freshclam
2026-04-05 21:50:41 | INFO | Commande: sudo systemctl enable --now clamav-daemon
2026-04-05 21:50:41 | INFO | [dry-run] sudo systemctl enable --now clamav-daemon
2026-04-05 21:50:42 | INFO | Commande: sudo aideinit
2026-04-05 21:50:42 | INFO | [dry-run] sudo aideinit
2026-04-05 21:50:42 | INFO | Commande: sudo systemctl enable --now aidecheck.timer
2026-04-05 21:50:42 | INFO | [dry-run] sudo systemctl enable --now aidecheck.timer
2026-04-05 21:50:42 | ERROR | Task failed: utilities_setup
Traceback (most recent call last):
File "/home/tuxgyver/scripts/securecheck/securecheck/executor.py", line 350, in execute_tasks
result = task.handler(context)
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 557, in <lambda>
handler=lambda context, _task=task, _func=func: _func(context, _task),
~~~~~^^^^^^^^^^^^^^^^
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 419, in utilities_setup
if wazuh_conf.exists() and os.access(wazuh_conf, os.R_OK):
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/pathlib/_abc.py", line 450, in exists
self.stat(follow_symlinks=follow_symlinks)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/pathlib/_local.py", line 517, in stat
return os.stat(self, follow_symlinks=follow_symlinks)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'
2026-04-05 21:50:42 | ERROR | -> ECHEC: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'
2026-04-05 21:50:55 | INFO | [1/1] Utilitaires pratiques
2026-04-05 21:50:55 | INFO | Commande: sudo apt-get update
2026-04-05 21:50:55 | INFO | [dry-run] sudo apt-get update
2026-04-05 21:50:55 | INFO | Commande: sudo systemctl enable --now fail2ban.service
2026-04-05 21:50:55 | INFO | [dry-run] sudo systemctl enable --now fail2ban.service
2026-04-05 21:50:55 | INFO | Commande: sudo systemctl disable --now avahi-daemon
2026-04-05 21:50:55 | INFO | [dry-run] sudo systemctl disable --now avahi-daemon
2026-04-05 21:50:55 | INFO | Commande: sudo systemctl enable --now apparmor
2026-04-05 21:50:55 | INFO | [dry-run] sudo systemctl enable --now apparmor
2026-04-05 21:50:55 | INFO | Commande: sudo systemctl enable --now clamav-freshclam
2026-04-05 21:50:55 | INFO | [dry-run] sudo systemctl enable --now clamav-freshclam
2026-04-05 21:50:55 | INFO | Commande: sudo systemctl enable --now clamav-daemon
2026-04-05 21:50:55 | INFO | [dry-run] sudo systemctl enable --now clamav-daemon
2026-04-05 21:50:55 | INFO | Commande: sudo aideinit
2026-04-05 21:50:55 | INFO | [dry-run] sudo aideinit
2026-04-05 21:50:55 | INFO | Commande: sudo systemctl enable --now aidecheck.timer
2026-04-05 21:50:55 | INFO | [dry-run] sudo systemctl enable --now aidecheck.timer
2026-04-05 21:50:55 | ERROR | Task failed: utilities_setup
Traceback (most recent call last):
File "/home/tuxgyver/scripts/securecheck/securecheck/executor.py", line 350, in execute_tasks
result = task.handler(context)
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 553, in <lambda>
handler=lambda context, _task=task, _func=func: _func(context, _task),
~~~~~^^^^^^^^^^^^^^^^
File "/home/tuxgyver/scripts/securecheck/securecheck/tasks.py", line 419, in utilities_setup
if wazuh_conf.exists() and os.access(wazuh_conf, os.R_OK):
~~~~~~~~~~~~~~~~~^^
File "/usr/lib/python3.13/pathlib/_abc.py", line 450, in exists
self.stat(follow_symlinks=follow_symlinks)
~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.13/pathlib/_local.py", line 517, in stat
return os.stat(self, follow_symlinks=follow_symlinks)
~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
PermissionError: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'
2026-04-05 21:50:55 | ERROR | -> ECHEC: [Errno 13] Permission denied: '/var/ossec/etc/ossec.conf'
2026-04-05 21:51:18 | INFO | [1/1] Utilitaires pratiques
2026-04-05 21:51:18 | INFO | Commande: sudo apt-get update
2026-04-05 21:51:18 | INFO | [dry-run] sudo apt-get update
2026-04-05 21:51:18 | INFO | Commande: sudo systemctl enable --now fail2ban.service
2026-04-05 21:51:18 | INFO | [dry-run] sudo systemctl enable --now fail2ban.service
2026-04-05 21:51:18 | INFO | Commande: sudo systemctl disable --now avahi-daemon
2026-04-05 21:51:18 | INFO | [dry-run] sudo systemctl disable --now avahi-daemon
2026-04-05 21:51:18 | INFO | Commande: sudo systemctl enable --now apparmor
2026-04-05 21:51:18 | INFO | [dry-run] sudo systemctl enable --now apparmor
2026-04-05 21:51:18 | INFO | Commande: sudo systemctl enable --now clamav-freshclam
2026-04-05 21:51:18 | INFO | [dry-run] sudo systemctl enable --now clamav-freshclam
2026-04-05 21:51:18 | INFO | Commande: sudo systemctl enable --now clamav-daemon
2026-04-05 21:51:18 | INFO | [dry-run] sudo systemctl enable --now clamav-daemon
2026-04-05 21:51:18 | INFO | Commande: sudo aideinit
2026-04-05 21:51:18 | INFO | [dry-run] sudo aideinit
2026-04-05 21:51:18 | INFO | Commande: sudo systemctl enable --now aidecheck.timer
2026-04-05 21:51:18 | INFO | [dry-run] sudo systemctl enable --now aidecheck.timer
2026-04-05 21:51:18 | INFO | Commande: sudo systemctl enable --now wazuh-agent
2026-04-05 21:51:18 | INFO | [dry-run] sudo systemctl enable --now wazuh-agent
2026-04-05 21:51:18 | INFO | -> OK (0.3s)
2026-04-05 21:59:58 | INFO | [1/5] Mise à jour système
2026-04-05 21:59:58 | INFO | Commande: sudo apt-get update
2026-04-05 21:59:58 | INFO | [dry-run] sudo apt-get update
2026-04-05 21:59:58 | INFO | Commande: sudo apt-get dist-upgrade -y
2026-04-05 21:59:58 | INFO | [dry-run] sudo apt-get dist-upgrade -y
2026-04-05 21:59:58 | INFO | Commande: sudo apt-get autoremove -y
2026-04-05 21:59:58 | INFO | [dry-run] sudo apt-get autoremove -y
2026-04-05 21:59:58 | INFO | Commande: sudo apt-get autoclean
2026-04-05 21:59:58 | INFO | [dry-run] sudo apt-get autoclean
2026-04-05 21:59:58 | INFO | -> OK (0.0s)
2026-04-05 21:59:58 | INFO | [2/5] Audit Lynis
2026-04-05 21:59:58 | INFO | Commande: sudo lynis audit system --quick
2026-04-05 21:59:58 | INFO | [dry-run] sudo lynis audit system --quick
2026-04-05 21:59:58 | INFO | Ecriture du fichier /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-215958-lynis.log
2026-04-05 21:59:58 | INFO | [dry-run] write /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-215958-lynis.log
2026-04-05 21:59:58 | INFO | -> OK (0.0s)
2026-04-05 21:59:58 | INFO | [3/5] Vérification rootkits
2026-04-05 21:59:58 | INFO | Commande: sudo rkhunter --update
2026-04-05 21:59:58 | INFO | [dry-run] sudo rkhunter --update
2026-04-05 21:59:58 | INFO | Commande: sudo rkhunter --propupd
2026-04-05 21:59:58 | INFO | [dry-run] sudo rkhunter --propupd
2026-04-05 21:59:58 | INFO | Commande: sudo rkhunter --check --skip-keypress --report-warnings-only
2026-04-05 21:59:58 | INFO | [dry-run] sudo rkhunter --check --skip-keypress --report-warnings-only
2026-04-05 21:59:58 | INFO | Commande: sudo chkrootkit -q
2026-04-05 21:59:58 | INFO | [dry-run] sudo chkrootkit -q
2026-04-05 21:59:58 | INFO | Ecriture du fichier /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-215958-rootkit-report.json
2026-04-05 21:59:58 | INFO | [dry-run] write /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-215958-rootkit-report.json
2026-04-05 21:59:58 | INFO | -> OK (0.0s)
2026-04-05 21:59:58 | INFO | [4/5] Vérification / autoconfig du firewall
2026-04-05 21:59:58 | INFO | Commande: sudo ufw default deny incoming
2026-04-05 21:59:58 | INFO | [dry-run] sudo ufw default deny incoming
2026-04-05 21:59:58 | INFO | Commande: sudo ufw default allow outgoing
2026-04-05 21:59:58 | INFO | [dry-run] sudo ufw default allow outgoing
2026-04-05 21:59:58 | INFO | Commande: sudo ufw status
2026-04-05 21:59:58 | INFO | [dry-run] sudo ufw status
2026-04-05 21:59:58 | INFO | Commande: sudo ufw allow 22/tcp
2026-04-05 21:59:58 | INFO | [dry-run] sudo ufw allow 22/tcp
2026-04-05 21:59:58 | INFO | Commande: sudo ufw --force enable
2026-04-05 21:59:58 | INFO | [dry-run] sudo ufw --force enable
2026-04-05 21:59:58 | INFO | -> OK (0.0s)
2026-04-05 21:59:58 | INFO | [5/5] Rotation des logs
2026-04-05 21:59:58 | INFO | -> OK (0.0s)
2026-04-05 22:05:03 | INFO | [1/5] Mise à jour système
2026-04-05 22:05:03 | INFO | Commande: sudo apt-get update
2026-04-05 22:05:03 | INFO | [dry-run] sudo apt-get update
2026-04-05 22:05:03 | INFO | Commande: sudo apt-get dist-upgrade -y
2026-04-05 22:05:03 | INFO | [dry-run] sudo apt-get dist-upgrade -y
2026-04-05 22:05:03 | INFO | Commande: sudo apt-get autoremove -y
2026-04-05 22:05:03 | INFO | [dry-run] sudo apt-get autoremove -y
2026-04-05 22:05:03 | INFO | Commande: sudo apt-get autoclean
2026-04-05 22:05:03 | INFO | [dry-run] sudo apt-get autoclean
2026-04-05 22:05:03 | INFO | -> OK (0.0s)
2026-04-05 22:05:03 | INFO | [2/5] Audit Lynis
2026-04-05 22:05:03 | INFO | Commande: sudo lynis audit system --quick
2026-04-05 22:05:03 | INFO | [dry-run] sudo lynis audit system --quick
2026-04-05 22:05:03 | INFO | Ecriture du fichier /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-220503-lynis.log
2026-04-05 22:05:03 | INFO | [dry-run] write /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-220503-lynis.log
2026-04-05 22:05:03 | INFO | -> OK (0.0s)
2026-04-05 22:05:03 | INFO | [3/5] Vérification rootkits
2026-04-05 22:05:03 | INFO | Commande: sudo rkhunter --update
2026-04-05 22:05:03 | INFO | [dry-run] sudo rkhunter --update
2026-04-05 22:05:03 | INFO | Commande: sudo rkhunter --propupd
2026-04-05 22:05:03 | INFO | [dry-run] sudo rkhunter --propupd
2026-04-05 22:05:03 | INFO | Commande: sudo rkhunter --check --skip-keypress --report-warnings-only
2026-04-05 22:05:03 | INFO | [dry-run] sudo rkhunter --check --skip-keypress --report-warnings-only
2026-04-05 22:05:03 | INFO | Commande: sudo chkrootkit -q
2026-04-05 22:05:03 | INFO | [dry-run] sudo chkrootkit -q
2026-04-05 22:05:03 | INFO | Ecriture du fichier /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-220503-rootkit-report.json
2026-04-05 22:05:03 | INFO | [dry-run] write /home/tuxgyver/scripts/securecheck/.securecheck-runtime/state/logs/reports/20260405-220503-rootkit-report.json
2026-04-05 22:05:03 | INFO | -> OK (0.0s)
2026-04-05 22:05:03 | INFO | [4/5] Vérification / autoconfig du firewall
2026-04-05 22:05:03 | INFO | Commande: sudo ufw default deny incoming
2026-04-05 22:05:03 | INFO | [dry-run] sudo ufw default deny incoming
2026-04-05 22:05:03 | INFO | Commande: sudo ufw default allow outgoing
2026-04-05 22:05:03 | INFO | [dry-run] sudo ufw default allow outgoing
2026-04-05 22:05:03 | INFO | Commande: sudo ufw status
2026-04-05 22:05:03 | INFO | [dry-run] sudo ufw status
2026-04-05 22:05:03 | INFO | Commande: sudo ufw allow 22/tcp
2026-04-05 22:05:03 | INFO | [dry-run] sudo ufw allow 22/tcp
2026-04-05 22:05:03 | INFO | Commande: sudo ufw --force enable
2026-04-05 22:05:03 | INFO | [dry-run] sudo ufw --force enable
2026-04-05 22:05:03 | INFO | -> OK (0.0s)
2026-04-05 22:05:03 | INFO | [5/5] Rotation des logs
2026-04-05 22:05:03 | INFO | -> OK (0.0s)

View File

@@ -82,7 +82,7 @@ La cible est un binaire autonome via PyInstaller. Exemple complet :
```bash
./build_executable.sh
```
Il appelle PyInstaller avec `--onefile` et embarque `securecheck/assets`.
Il appelle PyInstaller avec `run.py` (qui fédère `securecheck.__main__`) et embarque `securecheck/assets`.
3. Le résultat est dans `dist/securecheck` (et `build/` + `securecheck.spec`). Supprime `dist/ build/ securecheck.spec` si tu reconstruis.

View File

@@ -0,0 +1,612 @@
(['/home/tuxgyver/scripts/securecheck/run.py'],
['/home/tuxgyver/scripts/securecheck'],
['pkg_resources.py2_warn'],
[('/home/tuxgyver/.local/lib/python3.13/site-packages/pygame/__pyinstaller',
0),
('/usr/lib/python3/dist-packages/numpy/_pyinstaller', 0),
('/usr/lib/python3/dist-packages/yt_dlp/__pyinstaller', 0),
('/usr/lib/python3/dist-packages/freetype/__pyinstaller', 0),
('/home/tuxgyver/.local/lib/python3.13/site-packages/_pyinstaller_hooks_contrib/stdhooks',
-1000),
('/home/tuxgyver/.local/lib/python3.13/site-packages/_pyinstaller_hooks_contrib',
-1000)],
{},
[],
[],
False,
{},
0,
[],
[('securecheck/assets/banner.txt',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/banner.txt',
'DATA'),
('securecheck/assets/p10k.zsh',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/p10k.zsh',
'DATA'),
('securecheck/assets/securecheck-icon.ico',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/securecheck-icon.ico',
'DATA'),
('securecheck/assets/securecheck-icon.png',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/securecheck-icon.png',
'DATA'),
('securecheck/assets/securecheck-icon.svg',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/securecheck-icon.svg',
'DATA')],
'3.13.7 (main, Mar 3 2026, 12:19:54) [GCC 15.2.0]',
[('pyi_rth_inspect',
'/home/tuxgyver/.local/lib/python3.13/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py',
'PYSOURCE'),
('run', '/home/tuxgyver/scripts/securecheck/run.py', 'PYSOURCE')],
[('zipfile', '/usr/lib/python3.13/zipfile/__init__.py', 'PYMODULE'),
('zipfile._path',
'/usr/lib/python3.13/zipfile/_path/__init__.py',
'PYMODULE'),
('zipfile._path.glob',
'/usr/lib/python3.13/zipfile/_path/glob.py',
'PYMODULE'),
('pathlib', '/usr/lib/python3.13/pathlib/__init__.py', 'PYMODULE'),
('pathlib._local', '/usr/lib/python3.13/pathlib/_local.py', 'PYMODULE'),
('urllib.parse', '/usr/lib/python3.13/urllib/parse.py', 'PYMODULE'),
('urllib', '/usr/lib/python3.13/urllib/__init__.py', 'PYMODULE'),
('ipaddress', '/usr/lib/python3.13/ipaddress.py', 'PYMODULE'),
('glob', '/usr/lib/python3.13/glob.py', 'PYMODULE'),
('fnmatch', '/usr/lib/python3.13/fnmatch.py', 'PYMODULE'),
('pathlib._abc', '/usr/lib/python3.13/pathlib/_abc.py', 'PYMODULE'),
('contextlib', '/usr/lib/python3.13/contextlib.py', 'PYMODULE'),
('argparse', '/usr/lib/python3.13/argparse.py', 'PYMODULE'),
('textwrap', '/usr/lib/python3.13/textwrap.py', 'PYMODULE'),
('copy', '/usr/lib/python3.13/copy.py', 'PYMODULE'),
('gettext', '/usr/lib/python3.13/gettext.py', 'PYMODULE'),
('py_compile', '/usr/lib/python3.13/py_compile.py', 'PYMODULE'),
('importlib.machinery',
'/usr/lib/python3.13/importlib/machinery.py',
'PYMODULE'),
('importlib', '/usr/lib/python3.13/importlib/__init__.py', 'PYMODULE'),
('importlib._bootstrap',
'/usr/lib/python3.13/importlib/_bootstrap.py',
'PYMODULE'),
('importlib._bootstrap_external',
'/usr/lib/python3.13/importlib/_bootstrap_external.py',
'PYMODULE'),
('importlib.metadata',
'/usr/lib/python3.13/importlib/metadata/__init__.py',
'PYMODULE'),
('csv', '/usr/lib/python3.13/csv.py', 'PYMODULE'),
('importlib.metadata._adapters',
'/usr/lib/python3.13/importlib/metadata/_adapters.py',
'PYMODULE'),
('importlib.metadata._text',
'/usr/lib/python3.13/importlib/metadata/_text.py',
'PYMODULE'),
('email.message', '/usr/lib/python3.13/email/message.py', 'PYMODULE'),
('email.policy', '/usr/lib/python3.13/email/policy.py', 'PYMODULE'),
('email.contentmanager',
'/usr/lib/python3.13/email/contentmanager.py',
'PYMODULE'),
('email.quoprimime', '/usr/lib/python3.13/email/quoprimime.py', 'PYMODULE'),
('string', '/usr/lib/python3.13/string.py', 'PYMODULE'),
('email.headerregistry',
'/usr/lib/python3.13/email/headerregistry.py',
'PYMODULE'),
('email._header_value_parser',
'/usr/lib/python3.13/email/_header_value_parser.py',
'PYMODULE'),
('email.iterators', '/usr/lib/python3.13/email/iterators.py', 'PYMODULE'),
('email.generator', '/usr/lib/python3.13/email/generator.py', 'PYMODULE'),
('random', '/usr/lib/python3.13/random.py', 'PYMODULE'),
('statistics', '/usr/lib/python3.13/statistics.py', 'PYMODULE'),
('decimal', '/usr/lib/python3.13/decimal.py', 'PYMODULE'),
('_pydecimal', '/usr/lib/python3.13/_pydecimal.py', 'PYMODULE'),
('contextvars', '/usr/lib/python3.13/contextvars.py', 'PYMODULE'),
('fractions', '/usr/lib/python3.13/fractions.py', 'PYMODULE'),
('numbers', '/usr/lib/python3.13/numbers.py', 'PYMODULE'),
('hashlib', '/usr/lib/python3.13/hashlib.py', 'PYMODULE'),
('logging', '/usr/lib/python3.13/logging/__init__.py', 'PYMODULE'),
('pickle', '/usr/lib/python3.13/pickle.py', 'PYMODULE'),
('pprint', '/usr/lib/python3.13/pprint.py', 'PYMODULE'),
('dataclasses', '/usr/lib/python3.13/dataclasses.py', 'PYMODULE'),
('_compat_pickle', '/usr/lib/python3.13/_compat_pickle.py', 'PYMODULE'),
('bisect', '/usr/lib/python3.13/bisect.py', 'PYMODULE'),
('email._encoded_words',
'/usr/lib/python3.13/email/_encoded_words.py',
'PYMODULE'),
('base64', '/usr/lib/python3.13/base64.py', 'PYMODULE'),
('getopt', '/usr/lib/python3.13/getopt.py', 'PYMODULE'),
('email.charset', '/usr/lib/python3.13/email/charset.py', 'PYMODULE'),
('email.encoders', '/usr/lib/python3.13/email/encoders.py', 'PYMODULE'),
('email.base64mime', '/usr/lib/python3.13/email/base64mime.py', 'PYMODULE'),
('email._policybase', '/usr/lib/python3.13/email/_policybase.py', 'PYMODULE'),
('email.header', '/usr/lib/python3.13/email/header.py', 'PYMODULE'),
('email.errors', '/usr/lib/python3.13/email/errors.py', 'PYMODULE'),
('email.utils', '/usr/lib/python3.13/email/utils.py', 'PYMODULE'),
('socket', '/usr/lib/python3.13/socket.py', 'PYMODULE'),
('selectors', '/usr/lib/python3.13/selectors.py', 'PYMODULE'),
('email._parseaddr', '/usr/lib/python3.13/email/_parseaddr.py', 'PYMODULE'),
('calendar', '/usr/lib/python3.13/calendar.py', 'PYMODULE'),
('datetime', '/usr/lib/python3.13/datetime.py', 'PYMODULE'),
('_pydatetime', '/usr/lib/python3.13/_pydatetime.py', 'PYMODULE'),
('_strptime', '/usr/lib/python3.13/_strptime.py', 'PYMODULE'),
('quopri', '/usr/lib/python3.13/quopri.py', 'PYMODULE'),
('typing', '/usr/lib/python3.13/typing.py', 'PYMODULE'),
('importlib.abc', '/usr/lib/python3.13/importlib/abc.py', 'PYMODULE'),
('importlib.resources.abc',
'/usr/lib/python3.13/importlib/resources/abc.py',
'PYMODULE'),
('importlib.resources',
'/usr/lib/python3.13/importlib/resources/__init__.py',
'PYMODULE'),
('importlib.resources._functional',
'/usr/lib/python3.13/importlib/resources/_functional.py',
'PYMODULE'),
('importlib.resources._common',
'/usr/lib/python3.13/importlib/resources/_common.py',
'PYMODULE'),
('importlib.resources._adapters',
'/usr/lib/python3.13/importlib/resources/_adapters.py',
'PYMODULE'),
('tempfile', '/usr/lib/python3.13/tempfile.py', 'PYMODULE'),
('importlib._abc', '/usr/lib/python3.13/importlib/_abc.py', 'PYMODULE'),
('importlib.metadata._itertools',
'/usr/lib/python3.13/importlib/metadata/_itertools.py',
'PYMODULE'),
('importlib.metadata._functools',
'/usr/lib/python3.13/importlib/metadata/_functools.py',
'PYMODULE'),
('importlib.metadata._collections',
'/usr/lib/python3.13/importlib/metadata/_collections.py',
'PYMODULE'),
('importlib.metadata._meta',
'/usr/lib/python3.13/importlib/metadata/_meta.py',
'PYMODULE'),
('email', '/usr/lib/python3.13/email/__init__.py', 'PYMODULE'),
('email.parser', '/usr/lib/python3.13/email/parser.py', 'PYMODULE'),
('email.feedparser', '/usr/lib/python3.13/email/feedparser.py', 'PYMODULE'),
('json', '/usr/lib/python3.13/json/__init__.py', 'PYMODULE'),
('json.encoder', '/usr/lib/python3.13/json/encoder.py', 'PYMODULE'),
('json.decoder', '/usr/lib/python3.13/json/decoder.py', 'PYMODULE'),
('json.scanner', '/usr/lib/python3.13/json/scanner.py', 'PYMODULE'),
('importlib.readers', '/usr/lib/python3.13/importlib/readers.py', 'PYMODULE'),
('importlib.resources.readers',
'/usr/lib/python3.13/importlib/resources/readers.py',
'PYMODULE'),
('importlib.resources._itertools',
'/usr/lib/python3.13/importlib/resources/_itertools.py',
'PYMODULE'),
('tokenize', '/usr/lib/python3.13/tokenize.py', 'PYMODULE'),
('token', '/usr/lib/python3.13/token.py', 'PYMODULE'),
('lzma', '/usr/lib/python3.13/lzma.py', 'PYMODULE'),
('_compression', '/usr/lib/python3.13/_compression.py', 'PYMODULE'),
('bz2', '/usr/lib/python3.13/bz2.py', 'PYMODULE'),
('threading', '/usr/lib/python3.13/threading.py', 'PYMODULE'),
('_threading_local', '/usr/lib/python3.13/_threading_local.py', 'PYMODULE'),
('struct', '/usr/lib/python3.13/struct.py', 'PYMODULE'),
('shutil', '/usr/lib/python3.13/shutil.py', 'PYMODULE'),
('tarfile', '/usr/lib/python3.13/tarfile.py', 'PYMODULE'),
('gzip', '/usr/lib/python3.13/gzip.py', 'PYMODULE'),
('importlib.util', '/usr/lib/python3.13/importlib/util.py', 'PYMODULE'),
('inspect', '/usr/lib/python3.13/inspect.py', 'PYMODULE'),
('dis', '/usr/lib/python3.13/dis.py', 'PYMODULE'),
('opcode', '/usr/lib/python3.13/opcode.py', 'PYMODULE'),
('_opcode_metadata', '/usr/lib/python3.13/_opcode_metadata.py', 'PYMODULE'),
('ast', '/usr/lib/python3.13/ast.py', 'PYMODULE'),
('subprocess', '/usr/lib/python3.13/subprocess.py', 'PYMODULE'),
('signal', '/usr/lib/python3.13/signal.py', 'PYMODULE'),
('stringprep', '/usr/lib/python3.13/stringprep.py', 'PYMODULE'),
('tracemalloc', '/usr/lib/python3.13/tracemalloc.py', 'PYMODULE'),
('_colorize', '/usr/lib/python3.13/_colorize.py', 'PYMODULE'),
('_py_abc', '/usr/lib/python3.13/_py_abc.py', 'PYMODULE'),
('securecheck.__main__',
'/home/tuxgyver/scripts/securecheck/securecheck/__main__.py',
'PYMODULE'),
('securecheck',
'/home/tuxgyver/scripts/securecheck/securecheck/__init__.py',
'PYMODULE'),
('securecheck.system_info',
'/home/tuxgyver/scripts/securecheck/securecheck/system_info.py',
'PYMODULE'),
('securecheck.storage',
'/home/tuxgyver/scripts/securecheck/securecheck/storage.py',
'PYMODULE'),
('securecheck.models',
'/home/tuxgyver/scripts/securecheck/securecheck/models.py',
'PYMODULE'),
('securecheck.status',
'/home/tuxgyver/scripts/securecheck/securecheck/status.py',
'PYMODULE'),
('securecheck.logging_utils',
'/home/tuxgyver/scripts/securecheck/securecheck/logging_utils.py',
'PYMODULE'),
('logging.handlers', '/usr/lib/python3.13/logging/handlers.py', 'PYMODULE'),
('http.client', '/usr/lib/python3.13/http/client.py', 'PYMODULE'),
('http', '/usr/lib/python3.13/http/__init__.py', 'PYMODULE'),
('ssl', '/usr/lib/python3.13/ssl.py', 'PYMODULE'),
('smtplib', '/usr/lib/python3.13/smtplib.py', 'PYMODULE'),
('hmac', '/usr/lib/python3.13/hmac.py', 'PYMODULE'),
('queue', '/usr/lib/python3.13/queue.py', 'PYMODULE'),
('securecheck.executor',
'/home/tuxgyver/scripts/securecheck/securecheck/executor.py',
'PYMODULE'),
('urllib.request', '/usr/lib/python3.13/urllib/request.py', 'PYMODULE'),
('getpass', '/usr/lib/python3.13/getpass.py', 'PYMODULE'),
('nturl2path', '/usr/lib/python3.13/nturl2path.py', 'PYMODULE'),
('ftplib', '/usr/lib/python3.13/ftplib.py', 'PYMODULE'),
('netrc', '/usr/lib/python3.13/netrc.py', 'PYMODULE'),
('mimetypes', '/usr/lib/python3.13/mimetypes.py', 'PYMODULE'),
('http.cookiejar', '/usr/lib/python3.13/http/cookiejar.py', 'PYMODULE'),
('urllib.response', '/usr/lib/python3.13/urllib/response.py', 'PYMODULE'),
('urllib.error', '/usr/lib/python3.13/urllib/error.py', 'PYMODULE'),
('securecheck.config',
'/home/tuxgyver/scripts/securecheck/securecheck/config.py',
'PYMODULE'),
('securecheck.catalog',
'/home/tuxgyver/scripts/securecheck/securecheck/catalog.py',
'PYMODULE'),
('securecheck.tasks',
'/home/tuxgyver/scripts/securecheck/securecheck/tasks.py',
'PYMODULE'),
('securecheck.assets',
'/home/tuxgyver/scripts/securecheck/securecheck/assets.py',
'PYMODULE'),
('securecheck.app',
'/home/tuxgyver/scripts/securecheck/securecheck/app.py',
'PYMODULE'),
('curses', '/usr/lib/python3.13/curses/__init__.py', 'PYMODULE'),
('curses.has_key', '/usr/lib/python3.13/curses/has_key.py', 'PYMODULE'),
('__future__', '/usr/lib/python3.13/__future__.py', 'PYMODULE')],
[('libpython3.13.so.1.0',
'/lib/x86_64-linux-gnu/libpython3.13.so.1.0',
'BINARY'),
('python3.13/lib-dynload/_contextvars.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_contextvars.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_decimal.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_decimal.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_hashlib.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_hashlib.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/resource.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/resource.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_lzma.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_lzma.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_bz2.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_bz2.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_multibytecodec.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_multibytecodec.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_jp.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_jp.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_kr.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_kr.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_iso2022.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_iso2022.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_cn.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_cn.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_tw.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_tw.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_hk.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_hk.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_ssl.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_ssl.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_queue.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_queue.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/termios.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/termios.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_curses.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_curses.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('libz.so.1', '/lib/x86_64-linux-gnu/libz.so.1', 'BINARY'),
('libexpat.so.1', '/lib/x86_64-linux-gnu/libexpat.so.1', 'BINARY'),
('libcrypto.so.3', '/lib/x86_64-linux-gnu/libcrypto.so.3', 'BINARY'),
('libzstd.so.1', '/lib/x86_64-linux-gnu/libzstd.so.1', 'BINARY'),
('liblzma.so.5', '/lib/x86_64-linux-gnu/liblzma.so.5', 'BINARY'),
('libbz2.so.1.0', '/lib/x86_64-linux-gnu/libbz2.so.1.0', 'BINARY'),
('libssl.so.3', '/lib/x86_64-linux-gnu/libssl.so.3', 'BINARY'),
('libncursesw.so.6', '/lib/x86_64-linux-gnu/libncursesw.so.6', 'BINARY'),
('libtinfo.so.6', '/lib/x86_64-linux-gnu/libtinfo.so.6', 'BINARY')],
[],
[],
[('securecheck/assets/banner.txt',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/banner.txt',
'DATA'),
('securecheck/assets/p10k.zsh',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/p10k.zsh',
'DATA'),
('securecheck/assets/securecheck-icon.ico',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/securecheck-icon.ico',
'DATA'),
('securecheck/assets/securecheck-icon.png',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/securecheck-icon.png',
'DATA'),
('securecheck/assets/securecheck-icon.svg',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/securecheck-icon.svg',
'DATA'),
('wheel-0.46.1.dist-info/METADATA',
'/usr/lib/python3/dist-packages/wheel-0.46.1.dist-info/METADATA',
'DATA'),
('wheel-0.46.1.dist-info/WHEEL',
'/usr/lib/python3/dist-packages/wheel-0.46.1.dist-info/WHEEL',
'DATA'),
('wheel-0.46.1.dist-info/INSTALLER',
'/usr/lib/python3/dist-packages/wheel-0.46.1.dist-info/INSTALLER',
'DATA'),
('wheel-0.46.1.dist-info/entry_points.txt',
'/usr/lib/python3/dist-packages/wheel-0.46.1.dist-info/entry_points.txt',
'DATA'),
('base_library.zip',
'/home/tuxgyver/scripts/securecheck/build/securecheck/base_library.zip',
'DATA')],
[('functools', '/usr/lib/python3.13/functools.py', 'PYMODULE'),
('sre_compile', '/usr/lib/python3.13/sre_compile.py', 'PYMODULE'),
('copyreg', '/usr/lib/python3.13/copyreg.py', 'PYMODULE'),
('operator', '/usr/lib/python3.13/operator.py', 'PYMODULE'),
('genericpath', '/usr/lib/python3.13/genericpath.py', 'PYMODULE'),
('keyword', '/usr/lib/python3.13/keyword.py', 'PYMODULE'),
('types', '/usr/lib/python3.13/types.py', 'PYMODULE'),
('sre_parse', '/usr/lib/python3.13/sre_parse.py', 'PYMODULE'),
('os', '/usr/lib/python3.13/os.py', 'PYMODULE'),
('_collections_abc', '/usr/lib/python3.13/_collections_abc.py', 'PYMODULE'),
('io', '/usr/lib/python3.13/io.py', 'PYMODULE'),
('locale', '/usr/lib/python3.13/locale.py', 'PYMODULE'),
('encodings.zlib_codec',
'/usr/lib/python3.13/encodings/zlib_codec.py',
'PYMODULE'),
('encodings.uu_codec',
'/usr/lib/python3.13/encodings/uu_codec.py',
'PYMODULE'),
('encodings.utf_8_sig',
'/usr/lib/python3.13/encodings/utf_8_sig.py',
'PYMODULE'),
('encodings.utf_8', '/usr/lib/python3.13/encodings/utf_8.py', 'PYMODULE'),
('encodings.utf_7', '/usr/lib/python3.13/encodings/utf_7.py', 'PYMODULE'),
('encodings.utf_32_le',
'/usr/lib/python3.13/encodings/utf_32_le.py',
'PYMODULE'),
('encodings.utf_32_be',
'/usr/lib/python3.13/encodings/utf_32_be.py',
'PYMODULE'),
('encodings.utf_32', '/usr/lib/python3.13/encodings/utf_32.py', 'PYMODULE'),
('encodings.utf_16_le',
'/usr/lib/python3.13/encodings/utf_16_le.py',
'PYMODULE'),
('encodings.utf_16_be',
'/usr/lib/python3.13/encodings/utf_16_be.py',
'PYMODULE'),
('encodings.utf_16', '/usr/lib/python3.13/encodings/utf_16.py', 'PYMODULE'),
('encodings.unicode_escape',
'/usr/lib/python3.13/encodings/unicode_escape.py',
'PYMODULE'),
('encodings.undefined',
'/usr/lib/python3.13/encodings/undefined.py',
'PYMODULE'),
('encodings.tis_620', '/usr/lib/python3.13/encodings/tis_620.py', 'PYMODULE'),
('encodings.shift_jisx0213',
'/usr/lib/python3.13/encodings/shift_jisx0213.py',
'PYMODULE'),
('encodings.shift_jis_2004',
'/usr/lib/python3.13/encodings/shift_jis_2004.py',
'PYMODULE'),
('encodings.shift_jis',
'/usr/lib/python3.13/encodings/shift_jis.py',
'PYMODULE'),
('encodings.rot_13', '/usr/lib/python3.13/encodings/rot_13.py', 'PYMODULE'),
('encodings.raw_unicode_escape',
'/usr/lib/python3.13/encodings/raw_unicode_escape.py',
'PYMODULE'),
('encodings.quopri_codec',
'/usr/lib/python3.13/encodings/quopri_codec.py',
'PYMODULE'),
('encodings.punycode',
'/usr/lib/python3.13/encodings/punycode.py',
'PYMODULE'),
('encodings.ptcp154', '/usr/lib/python3.13/encodings/ptcp154.py', 'PYMODULE'),
('encodings.palmos', '/usr/lib/python3.13/encodings/palmos.py', 'PYMODULE'),
('encodings.oem', '/usr/lib/python3.13/encodings/oem.py', 'PYMODULE'),
('encodings.mbcs', '/usr/lib/python3.13/encodings/mbcs.py', 'PYMODULE'),
('encodings.mac_turkish',
'/usr/lib/python3.13/encodings/mac_turkish.py',
'PYMODULE'),
('encodings.mac_romanian',
'/usr/lib/python3.13/encodings/mac_romanian.py',
'PYMODULE'),
('encodings.mac_roman',
'/usr/lib/python3.13/encodings/mac_roman.py',
'PYMODULE'),
('encodings.mac_latin2',
'/usr/lib/python3.13/encodings/mac_latin2.py',
'PYMODULE'),
('encodings.mac_iceland',
'/usr/lib/python3.13/encodings/mac_iceland.py',
'PYMODULE'),
('encodings.mac_greek',
'/usr/lib/python3.13/encodings/mac_greek.py',
'PYMODULE'),
('encodings.mac_farsi',
'/usr/lib/python3.13/encodings/mac_farsi.py',
'PYMODULE'),
('encodings.mac_cyrillic',
'/usr/lib/python3.13/encodings/mac_cyrillic.py',
'PYMODULE'),
('encodings.mac_croatian',
'/usr/lib/python3.13/encodings/mac_croatian.py',
'PYMODULE'),
('encodings.mac_arabic',
'/usr/lib/python3.13/encodings/mac_arabic.py',
'PYMODULE'),
('encodings.latin_1', '/usr/lib/python3.13/encodings/latin_1.py', 'PYMODULE'),
('encodings.kz1048', '/usr/lib/python3.13/encodings/kz1048.py', 'PYMODULE'),
('encodings.koi8_u', '/usr/lib/python3.13/encodings/koi8_u.py', 'PYMODULE'),
('encodings.koi8_t', '/usr/lib/python3.13/encodings/koi8_t.py', 'PYMODULE'),
('encodings.koi8_r', '/usr/lib/python3.13/encodings/koi8_r.py', 'PYMODULE'),
('encodings.johab', '/usr/lib/python3.13/encodings/johab.py', 'PYMODULE'),
('encodings.iso8859_9',
'/usr/lib/python3.13/encodings/iso8859_9.py',
'PYMODULE'),
('encodings.iso8859_8',
'/usr/lib/python3.13/encodings/iso8859_8.py',
'PYMODULE'),
('encodings.iso8859_7',
'/usr/lib/python3.13/encodings/iso8859_7.py',
'PYMODULE'),
('encodings.iso8859_6',
'/usr/lib/python3.13/encodings/iso8859_6.py',
'PYMODULE'),
('encodings.iso8859_5',
'/usr/lib/python3.13/encodings/iso8859_5.py',
'PYMODULE'),
('encodings.iso8859_4',
'/usr/lib/python3.13/encodings/iso8859_4.py',
'PYMODULE'),
('encodings.iso8859_3',
'/usr/lib/python3.13/encodings/iso8859_3.py',
'PYMODULE'),
('encodings.iso8859_2',
'/usr/lib/python3.13/encodings/iso8859_2.py',
'PYMODULE'),
('encodings.iso8859_16',
'/usr/lib/python3.13/encodings/iso8859_16.py',
'PYMODULE'),
('encodings.iso8859_15',
'/usr/lib/python3.13/encodings/iso8859_15.py',
'PYMODULE'),
('encodings.iso8859_14',
'/usr/lib/python3.13/encodings/iso8859_14.py',
'PYMODULE'),
('encodings.iso8859_13',
'/usr/lib/python3.13/encodings/iso8859_13.py',
'PYMODULE'),
('encodings.iso8859_11',
'/usr/lib/python3.13/encodings/iso8859_11.py',
'PYMODULE'),
('encodings.iso8859_10',
'/usr/lib/python3.13/encodings/iso8859_10.py',
'PYMODULE'),
('encodings.iso8859_1',
'/usr/lib/python3.13/encodings/iso8859_1.py',
'PYMODULE'),
('encodings.iso2022_kr',
'/usr/lib/python3.13/encodings/iso2022_kr.py',
'PYMODULE'),
('encodings.iso2022_jp_ext',
'/usr/lib/python3.13/encodings/iso2022_jp_ext.py',
'PYMODULE'),
('encodings.iso2022_jp_3',
'/usr/lib/python3.13/encodings/iso2022_jp_3.py',
'PYMODULE'),
('encodings.iso2022_jp_2004',
'/usr/lib/python3.13/encodings/iso2022_jp_2004.py',
'PYMODULE'),
('encodings.iso2022_jp_2',
'/usr/lib/python3.13/encodings/iso2022_jp_2.py',
'PYMODULE'),
('encodings.iso2022_jp_1',
'/usr/lib/python3.13/encodings/iso2022_jp_1.py',
'PYMODULE'),
('encodings.iso2022_jp',
'/usr/lib/python3.13/encodings/iso2022_jp.py',
'PYMODULE'),
('encodings.idna', '/usr/lib/python3.13/encodings/idna.py', 'PYMODULE'),
('encodings.hz', '/usr/lib/python3.13/encodings/hz.py', 'PYMODULE'),
('encodings.hp_roman8',
'/usr/lib/python3.13/encodings/hp_roman8.py',
'PYMODULE'),
('encodings.hex_codec',
'/usr/lib/python3.13/encodings/hex_codec.py',
'PYMODULE'),
('encodings.gbk', '/usr/lib/python3.13/encodings/gbk.py', 'PYMODULE'),
('encodings.gb2312', '/usr/lib/python3.13/encodings/gb2312.py', 'PYMODULE'),
('encodings.gb18030', '/usr/lib/python3.13/encodings/gb18030.py', 'PYMODULE'),
('encodings.euc_kr', '/usr/lib/python3.13/encodings/euc_kr.py', 'PYMODULE'),
('encodings.euc_jp', '/usr/lib/python3.13/encodings/euc_jp.py', 'PYMODULE'),
('encodings.euc_jisx0213',
'/usr/lib/python3.13/encodings/euc_jisx0213.py',
'PYMODULE'),
('encodings.euc_jis_2004',
'/usr/lib/python3.13/encodings/euc_jis_2004.py',
'PYMODULE'),
('encodings.cp950', '/usr/lib/python3.13/encodings/cp950.py', 'PYMODULE'),
('encodings.cp949', '/usr/lib/python3.13/encodings/cp949.py', 'PYMODULE'),
('encodings.cp932', '/usr/lib/python3.13/encodings/cp932.py', 'PYMODULE'),
('encodings.cp875', '/usr/lib/python3.13/encodings/cp875.py', 'PYMODULE'),
('encodings.cp874', '/usr/lib/python3.13/encodings/cp874.py', 'PYMODULE'),
('encodings.cp869', '/usr/lib/python3.13/encodings/cp869.py', 'PYMODULE'),
('encodings.cp866', '/usr/lib/python3.13/encodings/cp866.py', 'PYMODULE'),
('encodings.cp865', '/usr/lib/python3.13/encodings/cp865.py', 'PYMODULE'),
('encodings.cp864', '/usr/lib/python3.13/encodings/cp864.py', 'PYMODULE'),
('encodings.cp863', '/usr/lib/python3.13/encodings/cp863.py', 'PYMODULE'),
('encodings.cp862', '/usr/lib/python3.13/encodings/cp862.py', 'PYMODULE'),
('encodings.cp861', '/usr/lib/python3.13/encodings/cp861.py', 'PYMODULE'),
('encodings.cp860', '/usr/lib/python3.13/encodings/cp860.py', 'PYMODULE'),
('encodings.cp858', '/usr/lib/python3.13/encodings/cp858.py', 'PYMODULE'),
('encodings.cp857', '/usr/lib/python3.13/encodings/cp857.py', 'PYMODULE'),
('encodings.cp856', '/usr/lib/python3.13/encodings/cp856.py', 'PYMODULE'),
('encodings.cp855', '/usr/lib/python3.13/encodings/cp855.py', 'PYMODULE'),
('encodings.cp852', '/usr/lib/python3.13/encodings/cp852.py', 'PYMODULE'),
('encodings.cp850', '/usr/lib/python3.13/encodings/cp850.py', 'PYMODULE'),
('encodings.cp775', '/usr/lib/python3.13/encodings/cp775.py', 'PYMODULE'),
('encodings.cp737', '/usr/lib/python3.13/encodings/cp737.py', 'PYMODULE'),
('encodings.cp720', '/usr/lib/python3.13/encodings/cp720.py', 'PYMODULE'),
('encodings.cp500', '/usr/lib/python3.13/encodings/cp500.py', 'PYMODULE'),
('encodings.cp437', '/usr/lib/python3.13/encodings/cp437.py', 'PYMODULE'),
('encodings.cp424', '/usr/lib/python3.13/encodings/cp424.py', 'PYMODULE'),
('encodings.cp273', '/usr/lib/python3.13/encodings/cp273.py', 'PYMODULE'),
('encodings.cp1258', '/usr/lib/python3.13/encodings/cp1258.py', 'PYMODULE'),
('encodings.cp1257', '/usr/lib/python3.13/encodings/cp1257.py', 'PYMODULE'),
('encodings.cp1256', '/usr/lib/python3.13/encodings/cp1256.py', 'PYMODULE'),
('encodings.cp1255', '/usr/lib/python3.13/encodings/cp1255.py', 'PYMODULE'),
('encodings.cp1254', '/usr/lib/python3.13/encodings/cp1254.py', 'PYMODULE'),
('encodings.cp1253', '/usr/lib/python3.13/encodings/cp1253.py', 'PYMODULE'),
('encodings.cp1252', '/usr/lib/python3.13/encodings/cp1252.py', 'PYMODULE'),
('encodings.cp1251', '/usr/lib/python3.13/encodings/cp1251.py', 'PYMODULE'),
('encodings.cp1250', '/usr/lib/python3.13/encodings/cp1250.py', 'PYMODULE'),
('encodings.cp1140', '/usr/lib/python3.13/encodings/cp1140.py', 'PYMODULE'),
('encodings.cp1125', '/usr/lib/python3.13/encodings/cp1125.py', 'PYMODULE'),
('encodings.cp1026', '/usr/lib/python3.13/encodings/cp1026.py', 'PYMODULE'),
('encodings.cp1006', '/usr/lib/python3.13/encodings/cp1006.py', 'PYMODULE'),
('encodings.cp037', '/usr/lib/python3.13/encodings/cp037.py', 'PYMODULE'),
('encodings.charmap', '/usr/lib/python3.13/encodings/charmap.py', 'PYMODULE'),
('encodings.bz2_codec',
'/usr/lib/python3.13/encodings/bz2_codec.py',
'PYMODULE'),
('encodings.big5hkscs',
'/usr/lib/python3.13/encodings/big5hkscs.py',
'PYMODULE'),
('encodings.big5', '/usr/lib/python3.13/encodings/big5.py', 'PYMODULE'),
('encodings.base64_codec',
'/usr/lib/python3.13/encodings/base64_codec.py',
'PYMODULE'),
('encodings.ascii', '/usr/lib/python3.13/encodings/ascii.py', 'PYMODULE'),
('encodings.aliases', '/usr/lib/python3.13/encodings/aliases.py', 'PYMODULE'),
('encodings', '/usr/lib/python3.13/encodings/__init__.py', 'PYMODULE'),
('enum', '/usr/lib/python3.13/enum.py', 'PYMODULE'),
('weakref', '/usr/lib/python3.13/weakref.py', 'PYMODULE'),
('_weakrefset', '/usr/lib/python3.13/_weakrefset.py', 'PYMODULE'),
('warnings', '/usr/lib/python3.13/warnings.py', 'PYMODULE'),
('sre_constants', '/usr/lib/python3.13/sre_constants.py', 'PYMODULE'),
('heapq', '/usr/lib/python3.13/heapq.py', 'PYMODULE'),
('codecs', '/usr/lib/python3.13/codecs.py', 'PYMODULE'),
('traceback', '/usr/lib/python3.13/traceback.py', 'PYMODULE'),
('linecache', '/usr/lib/python3.13/linecache.py', 'PYMODULE'),
('re._parser', '/usr/lib/python3.13/re/_parser.py', 'PYMODULE'),
('re._constants', '/usr/lib/python3.13/re/_constants.py', 'PYMODULE'),
('re._compiler', '/usr/lib/python3.13/re/_compiler.py', 'PYMODULE'),
('re._casefix', '/usr/lib/python3.13/re/_casefix.py', 'PYMODULE'),
('re', '/usr/lib/python3.13/re/__init__.py', 'PYMODULE'),
('posixpath', '/usr/lib/python3.13/posixpath.py', 'PYMODULE'),
('reprlib', '/usr/lib/python3.13/reprlib.py', 'PYMODULE'),
('abc', '/usr/lib/python3.13/abc.py', 'PYMODULE'),
('collections', '/usr/lib/python3.13/collections/__init__.py', 'PYMODULE'),
('ntpath', '/usr/lib/python3.13/ntpath.py', 'PYMODULE'),
('stat', '/usr/lib/python3.13/stat.py', 'PYMODULE')])

View File

@@ -0,0 +1,139 @@
('/home/tuxgyver/scripts/securecheck/dist/securecheck',
True,
False,
False,
None,
None,
False,
False,
None,
True,
False,
None,
None,
None,
'/home/tuxgyver/scripts/securecheck/build/securecheck/securecheck.pkg',
[('pyi-contents-directory _internal', '', 'OPTION'),
('PYZ-00.pyz',
'/home/tuxgyver/scripts/securecheck/build/securecheck/PYZ-00.pyz',
'PYZ'),
('struct',
'/home/tuxgyver/scripts/securecheck/build/securecheck/localpycs/struct.pyc',
'PYMODULE'),
('pyimod01_archive',
'/home/tuxgyver/scripts/securecheck/build/securecheck/localpycs/pyimod01_archive.pyc',
'PYMODULE'),
('pyimod02_importers',
'/home/tuxgyver/scripts/securecheck/build/securecheck/localpycs/pyimod02_importers.pyc',
'PYMODULE'),
('pyimod03_ctypes',
'/home/tuxgyver/scripts/securecheck/build/securecheck/localpycs/pyimod03_ctypes.pyc',
'PYMODULE'),
('pyiboot01_bootstrap',
'/home/tuxgyver/.local/lib/python3.13/site-packages/PyInstaller/loader/pyiboot01_bootstrap.py',
'PYSOURCE'),
('pyi_rth_inspect',
'/home/tuxgyver/.local/lib/python3.13/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py',
'PYSOURCE'),
('run', '/home/tuxgyver/scripts/securecheck/run.py', 'PYSOURCE'),
('libpython3.13.so.1.0',
'/lib/x86_64-linux-gnu/libpython3.13.so.1.0',
'BINARY'),
('python3.13/lib-dynload/_contextvars.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_contextvars.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_decimal.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_decimal.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_hashlib.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_hashlib.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/resource.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/resource.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_lzma.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_lzma.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_bz2.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_bz2.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_multibytecodec.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_multibytecodec.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_jp.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_jp.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_kr.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_kr.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_iso2022.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_iso2022.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_cn.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_cn.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_tw.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_tw.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_hk.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_hk.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_ssl.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_ssl.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_queue.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_queue.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/termios.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/termios.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_curses.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_curses.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('libz.so.1', '/lib/x86_64-linux-gnu/libz.so.1', 'BINARY'),
('libexpat.so.1', '/lib/x86_64-linux-gnu/libexpat.so.1', 'BINARY'),
('libcrypto.so.3', '/lib/x86_64-linux-gnu/libcrypto.so.3', 'BINARY'),
('libzstd.so.1', '/lib/x86_64-linux-gnu/libzstd.so.1', 'BINARY'),
('liblzma.so.5', '/lib/x86_64-linux-gnu/liblzma.so.5', 'BINARY'),
('libbz2.so.1.0', '/lib/x86_64-linux-gnu/libbz2.so.1.0', 'BINARY'),
('libssl.so.3', '/lib/x86_64-linux-gnu/libssl.so.3', 'BINARY'),
('libncursesw.so.6', '/lib/x86_64-linux-gnu/libncursesw.so.6', 'BINARY'),
('libtinfo.so.6', '/lib/x86_64-linux-gnu/libtinfo.so.6', 'BINARY'),
('securecheck/assets/banner.txt',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/banner.txt',
'DATA'),
('securecheck/assets/p10k.zsh',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/p10k.zsh',
'DATA'),
('securecheck/assets/securecheck-icon.ico',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/securecheck-icon.ico',
'DATA'),
('securecheck/assets/securecheck-icon.png',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/securecheck-icon.png',
'DATA'),
('securecheck/assets/securecheck-icon.svg',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/securecheck-icon.svg',
'DATA'),
('wheel-0.46.1.dist-info/METADATA',
'/usr/lib/python3/dist-packages/wheel-0.46.1.dist-info/METADATA',
'DATA'),
('wheel-0.46.1.dist-info/WHEEL',
'/usr/lib/python3/dist-packages/wheel-0.46.1.dist-info/WHEEL',
'DATA'),
('wheel-0.46.1.dist-info/INSTALLER',
'/usr/lib/python3/dist-packages/wheel-0.46.1.dist-info/INSTALLER',
'DATA'),
('wheel-0.46.1.dist-info/entry_points.txt',
'/usr/lib/python3/dist-packages/wheel-0.46.1.dist-info/entry_points.txt',
'DATA'),
('base_library.zip',
'/home/tuxgyver/scripts/securecheck/build/securecheck/base_library.zip',
'DATA')],
[],
False,
False,
1775421404,
[('run',
'/home/tuxgyver/.local/lib/python3.13/site-packages/PyInstaller/bootloader/Linux-64bit-intel/run',
'EXECUTABLE')],
'/lib/x86_64-linux-gnu/libpython3.13.so.1.0')

View File

@@ -0,0 +1,134 @@
('/home/tuxgyver/scripts/securecheck/build/securecheck/securecheck.pkg',
{'BINARY': True,
'DATA': True,
'EXECUTABLE': True,
'EXTENSION': True,
'PYMODULE': True,
'PYSOURCE': True,
'PYZ': False,
'SPLASH': True,
'SYMLINK': False},
[('pyi-contents-directory _internal', '', 'OPTION'),
('PYZ-00.pyz',
'/home/tuxgyver/scripts/securecheck/build/securecheck/PYZ-00.pyz',
'PYZ'),
('struct',
'/home/tuxgyver/scripts/securecheck/build/securecheck/localpycs/struct.pyc',
'PYMODULE'),
('pyimod01_archive',
'/home/tuxgyver/scripts/securecheck/build/securecheck/localpycs/pyimod01_archive.pyc',
'PYMODULE'),
('pyimod02_importers',
'/home/tuxgyver/scripts/securecheck/build/securecheck/localpycs/pyimod02_importers.pyc',
'PYMODULE'),
('pyimod03_ctypes',
'/home/tuxgyver/scripts/securecheck/build/securecheck/localpycs/pyimod03_ctypes.pyc',
'PYMODULE'),
('pyiboot01_bootstrap',
'/home/tuxgyver/.local/lib/python3.13/site-packages/PyInstaller/loader/pyiboot01_bootstrap.py',
'PYSOURCE'),
('pyi_rth_inspect',
'/home/tuxgyver/.local/lib/python3.13/site-packages/PyInstaller/hooks/rthooks/pyi_rth_inspect.py',
'PYSOURCE'),
('run', '/home/tuxgyver/scripts/securecheck/run.py', 'PYSOURCE'),
('libpython3.13.so.1.0',
'/lib/x86_64-linux-gnu/libpython3.13.so.1.0',
'BINARY'),
('python3.13/lib-dynload/_contextvars.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_contextvars.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_decimal.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_decimal.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_hashlib.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_hashlib.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/resource.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/resource.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_lzma.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_lzma.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_bz2.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_bz2.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_multibytecodec.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_multibytecodec.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_jp.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_jp.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_kr.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_kr.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_iso2022.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_iso2022.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_cn.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_cn.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_tw.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_tw.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_codecs_hk.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_codecs_hk.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_ssl.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_ssl.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_queue.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_queue.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/termios.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/termios.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('python3.13/lib-dynload/_curses.cpython-313-x86_64-linux-gnu.so',
'/usr/lib/python3.13/lib-dynload/_curses.cpython-313-x86_64-linux-gnu.so',
'EXTENSION'),
('libz.so.1', '/lib/x86_64-linux-gnu/libz.so.1', 'BINARY'),
('libexpat.so.1', '/lib/x86_64-linux-gnu/libexpat.so.1', 'BINARY'),
('libcrypto.so.3', '/lib/x86_64-linux-gnu/libcrypto.so.3', 'BINARY'),
('libzstd.so.1', '/lib/x86_64-linux-gnu/libzstd.so.1', 'BINARY'),
('liblzma.so.5', '/lib/x86_64-linux-gnu/liblzma.so.5', 'BINARY'),
('libbz2.so.1.0', '/lib/x86_64-linux-gnu/libbz2.so.1.0', 'BINARY'),
('libssl.so.3', '/lib/x86_64-linux-gnu/libssl.so.3', 'BINARY'),
('libncursesw.so.6', '/lib/x86_64-linux-gnu/libncursesw.so.6', 'BINARY'),
('libtinfo.so.6', '/lib/x86_64-linux-gnu/libtinfo.so.6', 'BINARY'),
('securecheck/assets/banner.txt',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/banner.txt',
'DATA'),
('securecheck/assets/p10k.zsh',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/p10k.zsh',
'DATA'),
('securecheck/assets/securecheck-icon.ico',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/securecheck-icon.ico',
'DATA'),
('securecheck/assets/securecheck-icon.png',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/securecheck-icon.png',
'DATA'),
('securecheck/assets/securecheck-icon.svg',
'/home/tuxgyver/scripts/securecheck/securecheck/assets/securecheck-icon.svg',
'DATA'),
('wheel-0.46.1.dist-info/METADATA',
'/usr/lib/python3/dist-packages/wheel-0.46.1.dist-info/METADATA',
'DATA'),
('wheel-0.46.1.dist-info/WHEEL',
'/usr/lib/python3/dist-packages/wheel-0.46.1.dist-info/WHEEL',
'DATA'),
('wheel-0.46.1.dist-info/INSTALLER',
'/usr/lib/python3/dist-packages/wheel-0.46.1.dist-info/INSTALLER',
'DATA'),
('wheel-0.46.1.dist-info/entry_points.txt',
'/usr/lib/python3/dist-packages/wheel-0.46.1.dist-info/entry_points.txt',
'DATA'),
('base_library.zip',
'/home/tuxgyver/scripts/securecheck/build/securecheck/base_library.zip',
'DATA')],
'libpython3.13.so.1.0',
False,
False,
False,
[],
None,
None,
None)

Binary file not shown.

View File

@@ -0,0 +1,216 @@
('/home/tuxgyver/scripts/securecheck/build/securecheck/PYZ-00.pyz',
[('__future__', '/usr/lib/python3.13/__future__.py', 'PYMODULE'),
('_colorize', '/usr/lib/python3.13/_colorize.py', 'PYMODULE'),
('_compat_pickle', '/usr/lib/python3.13/_compat_pickle.py', 'PYMODULE'),
('_compression', '/usr/lib/python3.13/_compression.py', 'PYMODULE'),
('_opcode_metadata', '/usr/lib/python3.13/_opcode_metadata.py', 'PYMODULE'),
('_py_abc', '/usr/lib/python3.13/_py_abc.py', 'PYMODULE'),
('_pydatetime', '/usr/lib/python3.13/_pydatetime.py', 'PYMODULE'),
('_pydecimal', '/usr/lib/python3.13/_pydecimal.py', 'PYMODULE'),
('_strptime', '/usr/lib/python3.13/_strptime.py', 'PYMODULE'),
('_threading_local', '/usr/lib/python3.13/_threading_local.py', 'PYMODULE'),
('argparse', '/usr/lib/python3.13/argparse.py', 'PYMODULE'),
('ast', '/usr/lib/python3.13/ast.py', 'PYMODULE'),
('base64', '/usr/lib/python3.13/base64.py', 'PYMODULE'),
('bisect', '/usr/lib/python3.13/bisect.py', 'PYMODULE'),
('bz2', '/usr/lib/python3.13/bz2.py', 'PYMODULE'),
('calendar', '/usr/lib/python3.13/calendar.py', 'PYMODULE'),
('contextlib', '/usr/lib/python3.13/contextlib.py', 'PYMODULE'),
('contextvars', '/usr/lib/python3.13/contextvars.py', 'PYMODULE'),
('copy', '/usr/lib/python3.13/copy.py', 'PYMODULE'),
('csv', '/usr/lib/python3.13/csv.py', 'PYMODULE'),
('curses', '/usr/lib/python3.13/curses/__init__.py', 'PYMODULE'),
('curses.has_key', '/usr/lib/python3.13/curses/has_key.py', 'PYMODULE'),
('dataclasses', '/usr/lib/python3.13/dataclasses.py', 'PYMODULE'),
('datetime', '/usr/lib/python3.13/datetime.py', 'PYMODULE'),
('decimal', '/usr/lib/python3.13/decimal.py', 'PYMODULE'),
('dis', '/usr/lib/python3.13/dis.py', 'PYMODULE'),
('email', '/usr/lib/python3.13/email/__init__.py', 'PYMODULE'),
('email._encoded_words',
'/usr/lib/python3.13/email/_encoded_words.py',
'PYMODULE'),
('email._header_value_parser',
'/usr/lib/python3.13/email/_header_value_parser.py',
'PYMODULE'),
('email._parseaddr', '/usr/lib/python3.13/email/_parseaddr.py', 'PYMODULE'),
('email._policybase', '/usr/lib/python3.13/email/_policybase.py', 'PYMODULE'),
('email.base64mime', '/usr/lib/python3.13/email/base64mime.py', 'PYMODULE'),
('email.charset', '/usr/lib/python3.13/email/charset.py', 'PYMODULE'),
('email.contentmanager',
'/usr/lib/python3.13/email/contentmanager.py',
'PYMODULE'),
('email.encoders', '/usr/lib/python3.13/email/encoders.py', 'PYMODULE'),
('email.errors', '/usr/lib/python3.13/email/errors.py', 'PYMODULE'),
('email.feedparser', '/usr/lib/python3.13/email/feedparser.py', 'PYMODULE'),
('email.generator', '/usr/lib/python3.13/email/generator.py', 'PYMODULE'),
('email.header', '/usr/lib/python3.13/email/header.py', 'PYMODULE'),
('email.headerregistry',
'/usr/lib/python3.13/email/headerregistry.py',
'PYMODULE'),
('email.iterators', '/usr/lib/python3.13/email/iterators.py', 'PYMODULE'),
('email.message', '/usr/lib/python3.13/email/message.py', 'PYMODULE'),
('email.parser', '/usr/lib/python3.13/email/parser.py', 'PYMODULE'),
('email.policy', '/usr/lib/python3.13/email/policy.py', 'PYMODULE'),
('email.quoprimime', '/usr/lib/python3.13/email/quoprimime.py', 'PYMODULE'),
('email.utils', '/usr/lib/python3.13/email/utils.py', 'PYMODULE'),
('fnmatch', '/usr/lib/python3.13/fnmatch.py', 'PYMODULE'),
('fractions', '/usr/lib/python3.13/fractions.py', 'PYMODULE'),
('ftplib', '/usr/lib/python3.13/ftplib.py', 'PYMODULE'),
('getopt', '/usr/lib/python3.13/getopt.py', 'PYMODULE'),
('getpass', '/usr/lib/python3.13/getpass.py', 'PYMODULE'),
('gettext', '/usr/lib/python3.13/gettext.py', 'PYMODULE'),
('glob', '/usr/lib/python3.13/glob.py', 'PYMODULE'),
('gzip', '/usr/lib/python3.13/gzip.py', 'PYMODULE'),
('hashlib', '/usr/lib/python3.13/hashlib.py', 'PYMODULE'),
('hmac', '/usr/lib/python3.13/hmac.py', 'PYMODULE'),
('http', '/usr/lib/python3.13/http/__init__.py', 'PYMODULE'),
('http.client', '/usr/lib/python3.13/http/client.py', 'PYMODULE'),
('http.cookiejar', '/usr/lib/python3.13/http/cookiejar.py', 'PYMODULE'),
('importlib', '/usr/lib/python3.13/importlib/__init__.py', 'PYMODULE'),
('importlib._abc', '/usr/lib/python3.13/importlib/_abc.py', 'PYMODULE'),
('importlib._bootstrap',
'/usr/lib/python3.13/importlib/_bootstrap.py',
'PYMODULE'),
('importlib._bootstrap_external',
'/usr/lib/python3.13/importlib/_bootstrap_external.py',
'PYMODULE'),
('importlib.abc', '/usr/lib/python3.13/importlib/abc.py', 'PYMODULE'),
('importlib.machinery',
'/usr/lib/python3.13/importlib/machinery.py',
'PYMODULE'),
('importlib.metadata',
'/usr/lib/python3.13/importlib/metadata/__init__.py',
'PYMODULE'),
('importlib.metadata._adapters',
'/usr/lib/python3.13/importlib/metadata/_adapters.py',
'PYMODULE'),
('importlib.metadata._collections',
'/usr/lib/python3.13/importlib/metadata/_collections.py',
'PYMODULE'),
('importlib.metadata._functools',
'/usr/lib/python3.13/importlib/metadata/_functools.py',
'PYMODULE'),
('importlib.metadata._itertools',
'/usr/lib/python3.13/importlib/metadata/_itertools.py',
'PYMODULE'),
('importlib.metadata._meta',
'/usr/lib/python3.13/importlib/metadata/_meta.py',
'PYMODULE'),
('importlib.metadata._text',
'/usr/lib/python3.13/importlib/metadata/_text.py',
'PYMODULE'),
('importlib.readers', '/usr/lib/python3.13/importlib/readers.py', 'PYMODULE'),
('importlib.resources',
'/usr/lib/python3.13/importlib/resources/__init__.py',
'PYMODULE'),
('importlib.resources._adapters',
'/usr/lib/python3.13/importlib/resources/_adapters.py',
'PYMODULE'),
('importlib.resources._common',
'/usr/lib/python3.13/importlib/resources/_common.py',
'PYMODULE'),
('importlib.resources._functional',
'/usr/lib/python3.13/importlib/resources/_functional.py',
'PYMODULE'),
('importlib.resources._itertools',
'/usr/lib/python3.13/importlib/resources/_itertools.py',
'PYMODULE'),
('importlib.resources.abc',
'/usr/lib/python3.13/importlib/resources/abc.py',
'PYMODULE'),
('importlib.resources.readers',
'/usr/lib/python3.13/importlib/resources/readers.py',
'PYMODULE'),
('importlib.util', '/usr/lib/python3.13/importlib/util.py', 'PYMODULE'),
('inspect', '/usr/lib/python3.13/inspect.py', 'PYMODULE'),
('ipaddress', '/usr/lib/python3.13/ipaddress.py', 'PYMODULE'),
('json', '/usr/lib/python3.13/json/__init__.py', 'PYMODULE'),
('json.decoder', '/usr/lib/python3.13/json/decoder.py', 'PYMODULE'),
('json.encoder', '/usr/lib/python3.13/json/encoder.py', 'PYMODULE'),
('json.scanner', '/usr/lib/python3.13/json/scanner.py', 'PYMODULE'),
('logging', '/usr/lib/python3.13/logging/__init__.py', 'PYMODULE'),
('logging.handlers', '/usr/lib/python3.13/logging/handlers.py', 'PYMODULE'),
('lzma', '/usr/lib/python3.13/lzma.py', 'PYMODULE'),
('mimetypes', '/usr/lib/python3.13/mimetypes.py', 'PYMODULE'),
('netrc', '/usr/lib/python3.13/netrc.py', 'PYMODULE'),
('nturl2path', '/usr/lib/python3.13/nturl2path.py', 'PYMODULE'),
('numbers', '/usr/lib/python3.13/numbers.py', 'PYMODULE'),
('opcode', '/usr/lib/python3.13/opcode.py', 'PYMODULE'),
('pathlib', '/usr/lib/python3.13/pathlib/__init__.py', 'PYMODULE'),
('pathlib._abc', '/usr/lib/python3.13/pathlib/_abc.py', 'PYMODULE'),
('pathlib._local', '/usr/lib/python3.13/pathlib/_local.py', 'PYMODULE'),
('pickle', '/usr/lib/python3.13/pickle.py', 'PYMODULE'),
('pprint', '/usr/lib/python3.13/pprint.py', 'PYMODULE'),
('py_compile', '/usr/lib/python3.13/py_compile.py', 'PYMODULE'),
('queue', '/usr/lib/python3.13/queue.py', 'PYMODULE'),
('quopri', '/usr/lib/python3.13/quopri.py', 'PYMODULE'),
('random', '/usr/lib/python3.13/random.py', 'PYMODULE'),
('securecheck',
'/home/tuxgyver/scripts/securecheck/securecheck/__init__.py',
'PYMODULE'),
('securecheck.__main__',
'/home/tuxgyver/scripts/securecheck/securecheck/__main__.py',
'PYMODULE'),
('securecheck.app',
'/home/tuxgyver/scripts/securecheck/securecheck/app.py',
'PYMODULE'),
('securecheck.assets',
'/home/tuxgyver/scripts/securecheck/securecheck/assets.py',
'PYMODULE'),
('securecheck.catalog',
'/home/tuxgyver/scripts/securecheck/securecheck/catalog.py',
'PYMODULE'),
('securecheck.config',
'/home/tuxgyver/scripts/securecheck/securecheck/config.py',
'PYMODULE'),
('securecheck.executor',
'/home/tuxgyver/scripts/securecheck/securecheck/executor.py',
'PYMODULE'),
('securecheck.logging_utils',
'/home/tuxgyver/scripts/securecheck/securecheck/logging_utils.py',
'PYMODULE'),
('securecheck.models',
'/home/tuxgyver/scripts/securecheck/securecheck/models.py',
'PYMODULE'),
('securecheck.status',
'/home/tuxgyver/scripts/securecheck/securecheck/status.py',
'PYMODULE'),
('securecheck.storage',
'/home/tuxgyver/scripts/securecheck/securecheck/storage.py',
'PYMODULE'),
('securecheck.system_info',
'/home/tuxgyver/scripts/securecheck/securecheck/system_info.py',
'PYMODULE'),
('securecheck.tasks',
'/home/tuxgyver/scripts/securecheck/securecheck/tasks.py',
'PYMODULE'),
('selectors', '/usr/lib/python3.13/selectors.py', 'PYMODULE'),
('shutil', '/usr/lib/python3.13/shutil.py', 'PYMODULE'),
('signal', '/usr/lib/python3.13/signal.py', 'PYMODULE'),
('smtplib', '/usr/lib/python3.13/smtplib.py', 'PYMODULE'),
('socket', '/usr/lib/python3.13/socket.py', 'PYMODULE'),
('ssl', '/usr/lib/python3.13/ssl.py', 'PYMODULE'),
('statistics', '/usr/lib/python3.13/statistics.py', 'PYMODULE'),
('string', '/usr/lib/python3.13/string.py', 'PYMODULE'),
('stringprep', '/usr/lib/python3.13/stringprep.py', 'PYMODULE'),
('subprocess', '/usr/lib/python3.13/subprocess.py', 'PYMODULE'),
('tarfile', '/usr/lib/python3.13/tarfile.py', 'PYMODULE'),
('tempfile', '/usr/lib/python3.13/tempfile.py', 'PYMODULE'),
('textwrap', '/usr/lib/python3.13/textwrap.py', 'PYMODULE'),
('threading', '/usr/lib/python3.13/threading.py', 'PYMODULE'),
('token', '/usr/lib/python3.13/token.py', 'PYMODULE'),
('tokenize', '/usr/lib/python3.13/tokenize.py', 'PYMODULE'),
('tracemalloc', '/usr/lib/python3.13/tracemalloc.py', 'PYMODULE'),
('typing', '/usr/lib/python3.13/typing.py', 'PYMODULE'),
('urllib', '/usr/lib/python3.13/urllib/__init__.py', 'PYMODULE'),
('urllib.error', '/usr/lib/python3.13/urllib/error.py', 'PYMODULE'),
('urllib.parse', '/usr/lib/python3.13/urllib/parse.py', 'PYMODULE'),
('urllib.request', '/usr/lib/python3.13/urllib/request.py', 'PYMODULE'),
('urllib.response', '/usr/lib/python3.13/urllib/response.py', 'PYMODULE'),
('zipfile', '/usr/lib/python3.13/zipfile/__init__.py', 'PYMODULE'),
('zipfile._path',
'/usr/lib/python3.13/zipfile/_path/__init__.py',
'PYMODULE'),
('zipfile._path.glob',
'/usr/lib/python3.13/zipfile/_path/glob.py',
'PYMODULE')])

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,26 @@
This file lists modules PyInstaller was not able to find. This does not
necessarily mean these modules are required for running your program. Both
Python's standard library and 3rd-party Python packages often conditionally
import optional modules, some of which may be available only on certain
platforms.
Types of import:
* top-level: imported at the top-level - look at these first
* conditional: imported within an if-statement
* delayed: imported within a function
* optional: imported within a try-except-statement
IMPORTANT: Do NOT post this list to the issue-tracker. Use it as a basis for
tracking down the missing module yourself. Thanks!
missing module named _frozen_importlib_external - imported by importlib._bootstrap (delayed), importlib (optional), importlib.abc (optional), zipimport (top-level)
excluded module named _frozen_importlib - imported by importlib (optional), importlib.abc (optional), zipimport (top-level)
missing module named 'collections.abc' - imported by traceback (top-level), typing (top-level), inspect (top-level), logging (top-level), importlib.resources.readers (top-level), selectors (top-level), tracemalloc (top-level), http.client (top-level), pkg_resources (top-level), setuptools (top-level), setuptools._distutils.filelist (top-level), setuptools._distutils.util (top-level), jaraco.functools (top-level), more_itertools.more (top-level), more_itertools.recipes (top-level), setuptools._distutils._modified (top-level), setuptools._distutils.compat (top-level), setuptools._distutils.spawn (top-level), typing_extensions (top-level), asyncio.base_events (top-level), asyncio.coroutines (top-level), setuptools._distutils.compilers.C.base (top-level), setuptools._distutils.fancy_getopt (top-level), setuptools._reqs (top-level), setuptools.discovery (top-level), setuptools.dist (top-level), setuptools._distutils.command.bdist (top-level), setuptools._distutils.core (top-level), setuptools._distutils.cmd (top-level), setuptools._distutils.dist (top-level), configparser (top-level), setuptools._distutils.extension (top-level), setuptools.config.setupcfg (top-level), setuptools.config.expand (top-level), setuptools.config.pyprojecttoml (top-level), setuptools.config._apply_pyprojecttoml (top-level), tomllib._parser (top-level), setuptools._vendor.tomli._parser (top-level), setuptools.command.egg_info (top-level), setuptools._distutils.command.build (top-level), setuptools._distutils.command.sdist (top-level), setuptools.glob (top-level), setuptools.command._requirestxt (top-level), setuptools.command.bdist_wheel (top-level), platformdirs.api (conditional), platformdirs.windows (conditional), platformdirs.unix (conditional), setuptools._distutils.command.build_ext (top-level), _pyrepl.types (top-level), _pyrepl.readline (top-level), setuptools._distutils.compilers.C.msvc (top-level)
missing module named winreg - imported by importlib._bootstrap_external (conditional), mimetypes (optional), urllib.request (delayed, conditional, optional), platform (delayed, optional), platformdirs.windows (delayed, optional), setuptools._distutils.compilers.C.msvc (top-level), setuptools.msvc (conditional)
missing module named nt - imported by shutil (conditional), importlib._bootstrap_external (conditional), _colorize (delayed, conditional, optional), os (delayed, conditional, optional), ntpath (optional), ctypes (delayed, conditional), _pyrepl.windows_console (delayed, optional)
missing module named _winapi - imported by encodings (delayed, conditional, optional), shutil (conditional), subprocess (conditional), ntpath (optional), mimetypes (optional), sysconfig (delayed), multiprocessing.connection (optional), multiprocessing.spawn (delayed, conditional), multiprocessing.reduction (conditional), multiprocessing.shared_memory (conditional), multiprocessing.heap (conditional), multiprocessing.popen_spawn_win32 (top-level), asyncio.windows_events (top-level), asyncio.windows_utils (top-level)
missing module named msvcrt - imported by subprocess (optional), getpass (optional), multiprocessing.spawn (delayed, conditional), multiprocessing.popen_spawn_win32 (top-level), asyncio.windows_events (top-level), asyncio.windows_utils (top-level), _pyrepl.windows_console (top-level)
missing module named win32evtlog - imported by logging.handlers (delayed, optional)
missing module named win32evtlogutil - imported by logging.handlers (delayed, optional)
missing module named _scproxy - imported by urllib.request (conditional)

File diff suppressed because it is too large Load Diff

View File

@@ -13,6 +13,6 @@ pyinstaller \
--name securecheck \
--add-data "securecheck/assets:securecheck/assets" \
--hidden-import pkg_resources.py2_warn \
securecheck/__main__.py
run.py
echo "Binaire généré dans dist/securecheck"

BIN
dist/securecheck vendored Executable file

Binary file not shown.

9
run.py Normal file
View File

@@ -0,0 +1,9 @@
from __future__ import annotations
import sys
from securecheck.__main__ import main
if __name__ == "__main__":
sys.exit(main())

38
securecheck.spec Normal file
View File

@@ -0,0 +1,38 @@
# -*- mode: python ; coding: utf-8 -*-
a = Analysis(
['run.py'],
pathex=[],
binaries=[],
datas=[('securecheck/assets', 'securecheck/assets')],
hiddenimports=['pkg_resources.py2_warn'],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
optimize=0,
)
pyz = PYZ(a.pure)
exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name='securecheck',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)

View File

@@ -1,6 +1,7 @@
from __future__ import annotations
import curses
import re
import textwrap
from collections import defaultdict
from dataclasses import dataclass
@@ -333,10 +334,17 @@ class SecureCheckTUI:
class RunSummaryTUI:
ANSI_RE = re.compile(r"\x1b\[[0-?]*[ -/]*[@-~]")
def __init__(self, results: list[TaskResult], status_items: list[StatusItem], run_log_path: str) -> None:
self.results = results
self.status_items = status_items
self.run_log_path = run_log_path
self.scroll_offset = 0
@classmethod
def _clean(cls, text: str) -> str:
return cls.ANSI_RE.sub("", text)
def run(self) -> None:
curses.wrapper(self._main)
@@ -344,48 +352,73 @@ class RunSummaryTUI:
def _main(self, stdscr: curses.window) -> None:
curses.curs_set(0)
stdscr.keypad(True)
stdscr.timeout(5000)
_setup_colors()
while True:
self._draw(stdscr)
key = stdscr.getch()
if key == -1 or key in (ord("q"), 27, 10, 13, ord("m"), ord(" ")):
if key in (ord("q"), 27, 10, 13, ord("m"), ord(" ")):
return
if key == curses.KEY_UP and self.scroll_offset > 0:
self.scroll_offset -= 1
elif key == curses.KEY_DOWN:
self.scroll_offset += 1
def _draw(self, stdscr: curses.window) -> None:
stdscr.erase()
height, width = stdscr.getmaxyx()
ok_count = sum(1 for result in self.results if result.success)
ko_count = len(self.results) - ok_count
self._draw_box(stdscr, 0, 1, height - 1, width - 2, "Résumé d'exécution")
stdscr.addnstr(1, 3, f"OK: {ok_count} | ECHEC: {ko_count} | Retour menu auto dans 5s", width - 6, curses.color_pair(Palette.HEADER) | curses.A_BOLD)
row = 3
score_lines: list[str] = []
notif_lines: list[str] = []
entries: list[tuple[str, int]] = []
entries.append((f"OK: {ok_count} | ECHEC: {ko_count} | Appuie sur une touche pour revenir", curses.color_pair(Palette.HEADER) | curses.A_BOLD))
for result in self.results:
if row >= height - 6:
break
color = curses.color_pair(Palette.SUCCESS if result.success else Palette.ERROR)
status = "OK" if result.success else "ECHEC"
line = f"{status:<5} {result.label} ({result.duration_seconds:.1f}s)"
stdscr.addnstr(row, 3, line, width - 6, color | curses.A_BOLD)
row += 1
for detail in result.details[:2]:
if row >= height - 6:
break
stdscr.addnstr(row, 6, f"- {detail}", width - 9)
row += 1
if result.error and row < height - 6:
stdscr.addnstr(row, 6, f"- {result.error}", width - 9, curses.color_pair(Palette.ERROR))
row += 1
row += 1
stdscr.addnstr(row, 3, "Etat synthétique:", width - 6, curses.color_pair(Palette.CATEGORY) | curses.A_BOLD)
row += 1
for item in self.status_items[: max(0, height - row - 2)]:
color = curses.color_pair(Palette.SUCCESS if item.ok else Palette.ERROR)
stdscr.addnstr(row, 3, "", 1, color | curses.A_BOLD)
stdscr.addnstr(row, 5, f"[{item.category}] {item.label}: {item.detail}", width - 8)
row += 1
stdscr.addnstr(height - 2, 3, f"Log: {self.run_log_path}", width - 6, curses.color_pair(Palette.MUTED))
color = curses.color_pair(Palette.SUCCESS if result.success else Palette.ERROR)
entries.append((f"{status:<4} {result.label} ({result.duration_seconds:.1f}s)", color | curses.A_BOLD))
for detail in result.details:
clean = self._clean(detail)
if clean.startswith("Score Lynis") or clean.startswith("Hardening index"):
score_lines.append(clean)
continue
if clean.startswith("Modifications") or clean.strip().startswith(""):
notif_lines.append(clean)
continue
wrapped = textwrap.wrap(clean, width - 9) or [""]
for line in wrapped:
entries.append((f" - {line}", 0))
if result.error:
entries.append((f" - {result.error}", curses.color_pair(Palette.ERROR)))
if score_lines:
entries.insert(1, ("Lynis", curses.color_pair(Palette.CATEGORY) | curses.A_BOLD))
for idx, line in enumerate(score_lines, start=2):
entries.insert(idx, (f" {line}", curses.color_pair(Palette.SUCCESS)))
entries.append((("", 0)))
entries.append(("Etat synthétique:", curses.color_pair(Palette.CATEGORY) | curses.A_BOLD))
for item in self.status_items:
attr = curses.color_pair(Palette.SUCCESS if item.ok else Palette.ERROR) | curses.A_BOLD
entries.append((f"● [{item.category}] {item.label}: {item.detail}", attr))
if notif_lines:
entries.append((("", 0)))
entries.append(("Modifications recommandées:", curses.color_pair(Palette.ERROR) | curses.A_BOLD))
for line in notif_lines:
clean = self._clean(line)
bullet = "" if clean.strip().startswith("") else "-"
entries.append((f" {bullet} {clean.lstrip('').strip()}", curses.color_pair(Palette.MUTED)))
entries.append(("", 0))
entries.append((f"Log: {self.run_log_path}", curses.color_pair(Palette.MUTED)))
available = height - 4
max_offset = max(0, len(entries) - available)
self.scroll_offset = min(max(self.scroll_offset, 0), max_offset)
visible = entries[self.scroll_offset : self.scroll_offset + available]
self._draw_box(stdscr, 0, 1, height - 1, width - 2, "Résumé d'exécution")
for idx, (line, attr) in enumerate(visible):
stdscr.addnstr(2 + idx, 3, line, width - 6, attr)
if max_offset:
bar_pos = int((self.scroll_offset / max_offset) * (available - 1)) if max_offset else 0
stdscr.addch(2 + min(bar_pos, available - 1), width - 3, curses.ACS_CKBOARD)
def _draw_box(self, stdscr: curses.window, top: int, left: int, height: int, width: int, title: str) -> None:
stdscr.attron(curses.color_pair(Palette.PANEL))
stdscr.addch(top, left, curses.ACS_ULCORNER)

View File

@@ -72,6 +72,18 @@ def collect_status(system: SystemInfo) -> list[StatusItem]:
firewall_ok = False
firewall_detail = "pare-feu absent"
security.append(StatusItem("Sécurité", "Firewall", firewall_ok, firewall_detail))
apparmor_active = _service_active("apparmor") or _command_exists("apparmor_status")
security.append(StatusItem("Sécurité", "AppArmor", apparmor_active, "activé" if apparmor_active else "inactif"))
clamav_active = _service_active("clamav-daemon") or _service_active("clamav-freshclam")
security.append(StatusItem("Sécurité", "ClamAV", clamav_active, "actif" if clamav_active else "inactif"))
wazuh_active = _service_active("wazuh-agent")
security.append(StatusItem("Sécurité", "Wazuh agent", wazuh_active, "actif" if wazuh_active else "inactif"))
aide_timer_active = _service_active("aidecheck.timer")
aide_db_exists = Path("/var/lib/aide/aide.db").exists()
aide_ok = aide_timer_active or aide_db_exists
detail = "timer actif" if aide_timer_active else "db présent" if aide_db_exists else "inactif"
security.append(StatusItem("Sécurité", "AIDE", aide_ok, detail))
security.append(_binary_status("Sécurité", "Lynis", "lynis"))
security.append(_binary_status("Sécurité", "rkhunter", "rkhunter"))
@@ -81,6 +93,8 @@ def collect_status(system: SystemInfo) -> list[StatusItem]:
fail2ban_active = _command_exists("fail2ban-client") and _service_active("fail2ban.service")
services.append(StatusItem("Services", "Service Docker", docker_active, "actif" if docker_active else "inactif"))
services.append(StatusItem("Services", "Service fail2ban", fail2ban_active, "actif" if fail2ban_active else "inactif"))
avahi_running = _command_exists("avahi-daemon") and _service_active("avahi-daemon")
services.append(StatusItem("Services", "Avahi", not avahi_running, "désactivé" if not avahi_running else "actif"))
services.append(_binary_status("Services", "Docker", "docker"))
services.append(_binary_status("Services", "fail2ban", "fail2ban-client"))

View File

@@ -1,15 +1,29 @@
from __future__ import annotations
import json
import re
from datetime import datetime
from pathlib import Path
from .assets import asset_text
from .executor import ExecutionContext, SecureCheckError
from .executor import CommandResult, ExecutionContext, SecureCheckError
from .models import TaskDefinition, TaskResult
P10K_REMOTE_URL = "https://git.h3campus.fr/Johnny/Install_zsh/raw/branch/main/.p10k.zsh"
P10K_THEME_GIT_URL = "https://github.com/romkatv/powerlevel10k.git"
AIDE_DEFAULT_CONF = """database=file:/var/lib/aide/aide.db
gzip_dbout=yes
group=default
dbinfo=file:/var/lib/aide/aide.db
dbinfo=file:/var/lib/aide/aide.db.gz
verbose=5
report_url=file:/var/log/aide/aide.log
checksum=sha512
file = p+u+g+s+m+acl+selinux+xattrs+sha512
"""
def _result(
@@ -98,6 +112,23 @@ system_name = securecheck
return _result(context, task, started_at, changed=changed, details=details)
def _parse_lynis_result(result: CommandResult) -> tuple[int | None, int | None, list[str]]:
score = None
hardening = None
issues: list[str] = []
for line in result.stdout.splitlines():
stripped = line.strip()
lowered = stripped.lower()
if match := re.search(r"final score\s*:\s*(\d+)", stripped, re.IGNORECASE):
score = int(match.group(1))
elif match := re.search(r"hardening index score\s*:\s*(\d+)", stripped, re.IGNORECASE):
hardening = int(match.group(1))
if any(keyword in lowered for keyword in ("warning", "suggest", "recommend", "failed", "error")):
if stripped and not stripped.startswith("Tip"):
issues.append(stripped)
return score, hardening, sorted(set(issues))
def lynis_audit(context: ExecutionContext, task: TaskDefinition) -> TaskResult:
started_at = datetime.now()
details: list[str] = []
@@ -115,8 +146,23 @@ def lynis_audit(context: ExecutionContext, task: TaskDefinition) -> TaskResult:
).strip() + "\n"
report_path = _write_report(context, "lynis", report_body)
details.append(f"Rapport Lynis: {report_path}")
success = result.returncode == 0
return context.make_result(task, success=success, changed=changed, started_at=started_at, details=details, error=None if success else "Lynis a remonté une erreur")
score, hardening, issues = _parse_lynis_result(result)
if score is not None:
details.append(f"Score Lynis: {score}")
if hardening is not None:
details.append(f"Hardening index: {hardening}")
if issues:
details.append("Modifications recommandées Lynis :")
details.extend(f"{issue}" for issue in issues[:10])
success = result.returncode == 0 and not issues
return context.make_result(
task,
success=success,
changed=changed,
started_at=started_at,
details=details,
error=None if success else "Lynis a détecté des recommandations",
)
def rootkit_check(context: ExecutionContext, task: TaskDefinition) -> TaskResult:
@@ -310,15 +356,92 @@ def utilities_setup(context: ExecutionContext, task: TaskDefinition) -> TaskResu
"ca-certificates",
]
elif manager in {"dnf", "yum"}:
packages = ["ncdu", "git", "curl", "fail2ban", "htop", "nmon", "duf", "net-tools", "tmux", "tree", "vim-enhanced"]
packages = [
"ncdu",
"git",
"curl",
"fail2ban",
"htop",
"nmon",
"duf",
"net-tools",
"tmux",
"tree",
"vim-enhanced",
"libpam-tmpdir",
"clamav",
"apparmor",
"wazuh-agent",
"aide",
"aide-common",
]
else:
packages = ["ncdu", "git", "curl", "htop", "nmon", "duf", "net-tools", "tmux", "tree", "vim"]
packages = [
"ncdu",
"git",
"curl",
"htop",
"nmon",
"duf",
"net-tools",
"tmux",
"tree",
"vim",
"libpam-tmpdir",
"clamav",
"apparmor",
"wazuh-agent",
"aide",
"aide-common",
]
details: list[str] = []
pkg_report = context.runner.ensure_packages_report(packages)
changed = _append_package_details(context, details, pkg_report)
if context.runner.command_exists("systemctl") and context.runner.command_exists("fail2ban-client"):
context.runner.enable_service("fail2ban.service")
if context.runner.command_exists("systemctl") and context.runner.command_exists("avahi-daemon"):
context.runner.run(["systemctl", "disable", "--now", "avahi-daemon"], requires_root=True, check=False)
details.append("Service avahi-daemon stoppé/désactivé")
if context.runner.package_available("apparmor") or context.runner.command_exists("apparmor_status"):
context.runner.run(["systemctl", "enable", "--now", "apparmor"], requires_root=True, check=False)
details.append("AppArmor activé")
if context.runner.package_available("clamav") or context.runner.command_exists("clamd"):
context.runner.run(["systemctl", "enable", "--now", "clamav-freshclam"], requires_root=True, check=False)
context.runner.run(["systemctl", "enable", "--now", "clamav-daemon"], requires_root=True, check=False)
details.append("ClamAV (daemon + freshclam) activé")
if context.runner.package_available("aide") or context.runner.package_available("aide-common"):
aide_conf_path = Path("/etc/aide/aide.conf")
if not aide_conf_path.exists() or aide_conf_path.read_text(encoding="utf-8") != AIDE_DEFAULT_CONF:
context.runner.write_text_file(aide_conf_path, AIDE_DEFAULT_CONF, mode=0o644, requires_root=True)
details.append("Configuration AIDE appliquée")
default_env = Path("/etc/default/aide")
if not default_env.exists() or default_env.read_text(encoding="utf-8") != 'MAILTO=""\n':
context.runner.write_text_file(default_env, 'MAILTO=""\n', mode=0o644, requires_root=True)
details.append("MAILTO AIDE désactivé")
aide_db_new = Path("/var/lib/aide/aide.db.new")
if not aide_db_new.exists():
context.runner.run(["aideinit"], requires_root=True, check=False)
details.append("AIDE initialisé (aideinit)")
else:
details.append("AIDE déjà initialisé")
if aide_db_new.exists():
existing_db = Path("/var/lib/aide/aide.db")
if not existing_db.exists() or aide_db_new.read_bytes() != existing_db.read_bytes():
context.runner.run(["cp", "-f", str(aide_db_new), "/var/lib/aide/aide.db"], requires_root=True, check=False)
details.append("Base AIDE mise à jour")
if context.runner.command_exists("systemctl"):
context.runner.run(["systemctl", "enable", "--now", "aidecheck.timer"], requires_root=True, check=False)
context.runner.run(["systemctl", "enable", "--now", "dailyaidecheck.timer"], requires_root=True, check=False)
details.append("Timers AIDE activés")
if context.runner.command_exists("systemctl"):
context.runner.run(["systemctl", "enable", "--now", "wazuh-agent"], requires_root=True, check=False)
details.append("Wazuh agent activé (configuration server sur 192.168.1.219 à gérer manuellement)")
details.append("Utilitaires système et sécurité installés / vérifiés")
return _result(context, task, started_at, changed=changed, details=details)