first commit
This commit is contained in:
commit
974a5f3294
25
README.md
Executable file
25
README.md
Executable file
|
@ -0,0 +1,25 @@
|
|||
GUI RKHunter Version 1.01
|
||||
============================
|
||||
<img src="http://xavier.debert.free.fr/rkh.png" width="50%">
|
||||
|
||||
## Install
|
||||
pres-requis:
|
||||
python3
|
||||
sudo apt-get install python3-tk rkhunter gnome-terminal
|
||||
|
||||
sudo ./build.sh
|
||||
|
||||
## Run
|
||||
sudo guirkhunter
|
||||
|
||||
## Version en production 1.01
|
||||
|
||||
Outils graphique pour simplifier les commandes.
|
||||
|
||||
|
||||
73
|
||||
Xavier
|
||||
|
||||
|
||||
|
||||
|
61
build.sh
Executable file
61
build.sh
Executable file
|
@ -0,0 +1,61 @@
|
|||
#!/bin/bash
|
||||
|
||||
#pres-requis install
|
||||
if [ -e /usr/bin/python3 ]
|
||||
then
|
||||
echo "Phyton installé"
|
||||
else
|
||||
echo "Install Python et TK"
|
||||
apt install python3 -y
|
||||
|
||||
fi
|
||||
|
||||
if [ -e /usr/share/doc/python3-tk ]
|
||||
then
|
||||
echo "Phyton TK installé"
|
||||
else
|
||||
echo "Install TK"
|
||||
apt install python3-tk -y
|
||||
fi
|
||||
|
||||
if [ -e /usr/bin/pip3 ]
|
||||
then
|
||||
echo "Phyton pip3 installé"
|
||||
else
|
||||
echo "Install pip3"
|
||||
apt install python3-pip -y
|
||||
pip3 install cx_Freeze
|
||||
pip3 install serial
|
||||
fi
|
||||
|
||||
|
||||
if [ -e /usr/bin/rkhunter ]
|
||||
then
|
||||
echo "RKHunter installé"
|
||||
else
|
||||
echo "Install RKHunter"
|
||||
apt install rkhunter -y
|
||||
fi
|
||||
|
||||
if [ -e /usr/bin/gnome-terminal ]
|
||||
then
|
||||
echo "gnome-terminal installé"
|
||||
else
|
||||
echo "Install gnome-terminal"
|
||||
apt install gnome-terminal -y
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
#build and install guiinstall
|
||||
./setup.py build
|
||||
cp -r img/ build/exe.linux-x86_64-*/
|
||||
chmod -R 755 build/
|
||||
echo "install"
|
||||
cd build/
|
||||
rm -r /opt/guirkhunter/
|
||||
mv exe.linux-x86_64-*/ /opt/guirkhunter/
|
||||
rm /usr/local/sbin/guirkhunter
|
||||
ln -s /opt/guirkhunter/main /usr/local/sbin/guirkhunter
|
||||
exit 0
|
BIN
img/rkh.png
Normal file
BIN
img/rkh.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 24 KiB |
BIN
img/rkhunter.png
Normal file
BIN
img/rkhunter.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.8 KiB |
BIN
img/rkhunter_old.png
Normal file
BIN
img/rkhunter_old.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 57 KiB |
164
main.py
Executable file
164
main.py
Executable file
|
@ -0,0 +1,164 @@
|
|||
#! /usr/bin/env python3
|
||||
# -*- coding: UTF-8 -*-
|
||||
#(c) Xavier 2022
|
||||
|
||||
# pour débugger… en ligne de commande !-)
|
||||
#import pdb; pdb.set_trace()
|
||||
|
||||
#GUI RKHunter FRS2013
|
||||
|
||||
# for Python3
|
||||
from tkinter import *
|
||||
import tkinter.messagebox
|
||||
import tkinter.filedialog
|
||||
import os
|
||||
import serial
|
||||
import time
|
||||
import csv
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
|
||||
try:
|
||||
|
||||
import configparser as configparser
|
||||
except ImportError:
|
||||
import ConfigParser as configparser
|
||||
|
||||
|
||||
#param os
|
||||
sysos="linux"
|
||||
clearscreen="clear"
|
||||
|
||||
os.system(clearscreen)
|
||||
|
||||
#def function
|
||||
|
||||
def Version():
|
||||
versionrkh = os.popen('rkhunter --version')
|
||||
|
||||
tkinter.messagebox.showinfo("Version","GUI RKHunter V" + versionrkh.read() + "\n(C) 2022 Xavier\n1.01")
|
||||
|
||||
def Clean():
|
||||
for c in frame.winfo_children():
|
||||
c.destroy()
|
||||
os.system(clearscreen)
|
||||
FormGUI()
|
||||
|
||||
|
||||
def Rkhscanall():
|
||||
os.system(clearscreen)
|
||||
subprocess.call(['gnome-terminal -- bash -c "rkhunter --checkall"',''], shell=True)
|
||||
|
||||
|
||||
def Rkhscanfast():
|
||||
os.system(clearscreen)
|
||||
subprocess.call(['gnome-terminal -- bash -c "rkhunter -c --rwo"', ''], shell=True)
|
||||
|
||||
|
||||
def Rkhupdate():
|
||||
os.system(clearscreen)
|
||||
subprocess.call(['gnome-terminal -- bash -c "rkhunter --update"',''], shell=True)
|
||||
|
||||
|
||||
def Rkhfix():
|
||||
subprocess.call(['gnome-terminal -- bash -c "rkhunter --propupd"',''], shell=True)
|
||||
|
||||
def Rkhlog():
|
||||
os.system(clearscreen)
|
||||
subprocess.call(['gnome-terminal -- bash -c "cat /var/log/rkhunter.log | more"',''], shell=True)
|
||||
|
||||
|
||||
def FormGUI():
|
||||
|
||||
for c in frame.winfo_children():
|
||||
c.destroy()
|
||||
Label0 = Label(frame, text = 'GUI RKHunter: ')
|
||||
Label0.grid(column=0,row=0, sticky='w',pady=2)
|
||||
|
||||
bouton2= Button (frame, text="RkHunter ScanAll", command=Rkhscanall, padx=2)
|
||||
bouton2.grid (column=1, row=11,sticky='sw', padx=20)
|
||||
|
||||
bouton2= Button (frame, text="RKHunter update", command=Rkhupdate, padx=2)
|
||||
bouton2.grid (column=10, row=11,sticky='sw', padx=20)
|
||||
|
||||
bouton2= Button (frame, text="RkHunter Scan Fast", command=Rkhscanfast, padx=2)
|
||||
bouton2.grid (column=1, row=31,sticky='sw', padx=20)
|
||||
|
||||
bouton2= Button (frame, text="RKHunter Log", command=Rkhlog, padx=2)
|
||||
bouton2.grid (column=10, row=31,sticky='sw', padx=20)
|
||||
|
||||
bouton2= Button (frame, text="RKHunter Fix", command=Rkhfix, padx=2)
|
||||
bouton2.grid (column=5, row=51,sticky='sw', padx=20)
|
||||
|
||||
def FormNoRoot():
|
||||
tkinter.messagebox.showinfo("Error","GUI RKHunter need ROOT\n")
|
||||
os._exit(os.EX_OK)
|
||||
|
||||
def Quit():
|
||||
os._exit(os.EX_OK)
|
||||
|
||||
def Apropos():
|
||||
tkinter.messagebox.showinfo("Aide sur GUIRKHunter",
|
||||
"Ce GUI est un interpréteur de CMD\nScanAll rkhunter --checkall\nSacnFast rkhunter -c --rwo\nUpdate rkhunter --update\nFix rkhunter --propudp\nLog nano /var/log/rkhunter.log\n\n\n")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
print("START INI")
|
||||
chemin = os.popen("readlink guirkhunter | sed 's/main//g'")
|
||||
# Main window
|
||||
Mafenetre = Tk()
|
||||
Mafenetre.title("GUI RKHunter")
|
||||
if os.name == 'nt':
|
||||
Mafenetre.iconbitmap("icone.ico")
|
||||
|
||||
# Mon logo
|
||||
logo = PhotoImage(file= "/opt/guirkhunter/img/rkhunter.png")
|
||||
|
||||
# Création d'un widget Menu
|
||||
menubar = Menu(Mafenetre)
|
||||
menuaide = Menu(menubar,tearoff=0)
|
||||
if not os.name == 'nt':
|
||||
menubar.add_cascade(image=logo)
|
||||
|
||||
menufichier = Menu(menubar,tearoff=0)
|
||||
menufichier.add_separator()
|
||||
menufichier.add_command(label="Nettoyer Frame",command=Clean)
|
||||
menufichier.add_command(label="Quitter",command=Quit)
|
||||
menubar.add_cascade(label="Fichier", menu=menufichier)
|
||||
|
||||
menuaprs = Menu(menubar,tearoff=0)
|
||||
menuaprs.add_command(label="RKH Scan All",command=Rkhscanall)
|
||||
menuaprs.add_command(label="RKH Scan Fast",command=Rkhscanfast)
|
||||
menuaprs.add_command(label="RKH Update",command=Rkhupdate)
|
||||
menuaprs.add_command(label="RKH Fix",command=Rkhfix)
|
||||
menuaprs.add_separator()
|
||||
menuaprs.add_command(label="RKH Log",command=Rkhlog)
|
||||
menuaprs.add_separator()
|
||||
|
||||
menubar.add_cascade(label="GUI RKHunter", menu=menuaprs)
|
||||
|
||||
menuaide = Menu(menubar,tearoff=0)
|
||||
menuaide.add_command(label="A propos",command=Apropos)
|
||||
menuaide.add_command(label="Version",command=Version)
|
||||
menubar.add_cascade(label="Aide", menu=menuaide)
|
||||
|
||||
# Affichage du menu
|
||||
Mafenetre.config(menu=menubar)
|
||||
frame=Frame(Mafenetre,height=200,width=400)
|
||||
frame.pack()
|
||||
|
||||
Canevas = Canvas(Mafenetre,width=400, height=5)
|
||||
Canevas.pack()
|
||||
frame.photo = PhotoImage(file ='')
|
||||
espace_image = Canvas(frame, width =170, height =170, bg ='black')
|
||||
espace_image.grid(row=3 ,columnspan=2, column=0, padx =10, pady =10)
|
||||
espace_image.create_image(85, 85, image =frame.photo)
|
||||
if os.getuid() != 0:
|
||||
# We're not root so, like, whatever dude
|
||||
print("No root")
|
||||
FormNoRoot();
|
||||
|
||||
FormGUI()
|
||||
Mafenetre.mainloop()
|
34
rkhunter
Normal file
34
rkhunter
Normal file
|
@ -0,0 +1,34 @@
|
|||
# Defaults for rkhunter automatic tasks
|
||||
# sourced by /etc/cron.*/rkhunter and /etc/apt/apt.conf.d/90rkhunter
|
||||
#
|
||||
# This is a POSIX shell fragment
|
||||
#
|
||||
|
||||
# Set this to yes to enable rkhunter daily runs
|
||||
# (default: false)
|
||||
CRON_DAILY_RUN="true"
|
||||
|
||||
# Set this to yes to enable rkhunter weekly database updates
|
||||
# (default: false)
|
||||
CRON_DB_UPDATE="true"
|
||||
|
||||
# Set this to yes to enable reports of weekly database updates
|
||||
# (default: false)
|
||||
DB_UPDATE_EMAIL="false"
|
||||
|
||||
# Set this to the email address where reports and run output should be sent
|
||||
# (default: root)
|
||||
REPORT_EMAIL="root"
|
||||
|
||||
# Set this to yes to enable automatic database updates
|
||||
# (default: false)
|
||||
APT_AUTOGEN="true"
|
||||
|
||||
# Nicenesses range from -20 (most favorable scheduling) to 19 (least favorable)
|
||||
# (default: 0)
|
||||
NICE="0"
|
||||
|
||||
# Should daily check be run when running on battery
|
||||
# powermgmt-base is required to detect if running on battery or on AC power
|
||||
# (default: false)
|
||||
RUN_CHECK_ON_BATTERY="false"
|
1352
rkhunter.conf
Normal file
1352
rkhunter.conf
Normal file
File diff suppressed because it is too large
Load Diff
101
setup.py
Executable file
101
setup.py
Executable file
|
@ -0,0 +1,101 @@
|
|||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
# Python 3
|
||||
#(c) Xavier 2019
|
||||
"""
|
||||
Icone sous Windows: il faut:
|
||||
=> un xxx.ico pour integration dans le exe, avec "icon=xxx.ico"
|
||||
=> un xxx.png pour integration avec PyQt4 + demander la recopie avec includefiles.
|
||||
"""
|
||||
|
||||
import sys, os
|
||||
from cx_Freeze import setup, Executable
|
||||
|
||||
#############################################################################
|
||||
# preparation des options
|
||||
|
||||
# chemins de recherche des modules
|
||||
# ajouter d'autres chemins (absolus) si necessaire: sys.path + ["chemin1", "chemin2"]
|
||||
path = sys.path
|
||||
|
||||
# options d'inclusion/exclusion des modules
|
||||
includes = [] # nommer les modules non trouves par cx_freeze
|
||||
excludes = []
|
||||
packages = [] # nommer les packages utilises
|
||||
|
||||
# copier les fichiers non-Python et/ou repertoires et leur contenu:
|
||||
includefiles = []
|
||||
|
||||
if sys.platform == "win32":
|
||||
pass
|
||||
# includefiles += [...] : ajouter les recopies specifiques à Windows
|
||||
elif sys.platform == "linux2":
|
||||
pass
|
||||
# includefiles += [...] : ajouter les recopies specifiques à Linux
|
||||
else:
|
||||
pass
|
||||
# includefiles += [...] : cas du Mac OSX non traite ici
|
||||
|
||||
# pour que les bibliotheques binaires de /usr/lib soient recopiees aussi sous Linux
|
||||
binpathincludes = []
|
||||
if sys.platform == "linux2":
|
||||
binpathincludes += ["/usr/lib"]
|
||||
|
||||
# niveau d'optimisation pour la compilation en bytecodes
|
||||
optimize = 0
|
||||
|
||||
# si True, n'affiche que les warning et les erreurs pendant le traitement cx_freeze
|
||||
silent = True
|
||||
|
||||
# construction du dictionnaire des options
|
||||
options = {"path": path,
|
||||
"includes": includes,
|
||||
"excludes": excludes,
|
||||
"packages": packages,
|
||||
"include_files": includefiles,
|
||||
"bin_path_includes": binpathincludes,
|
||||
#"create_shared_zip": False, # <= ne pas generer de fichier zip
|
||||
#"include_in_shared_zip": False, # <= ne pas generer de fichier zip
|
||||
#"compressed": False, # <= ne pas generer de fichier zip
|
||||
"optimize": optimize,
|
||||
"silent": silent
|
||||
}
|
||||
|
||||
# pour inclure sous Windows les dll system de Windows necessaires
|
||||
if sys.platform == "win32":
|
||||
options["include_msvcr"] = True
|
||||
|
||||
#############################################################################
|
||||
# preparation des cibles
|
||||
base = None
|
||||
if sys.platform == "win32":
|
||||
base = "Win32GUI" # pour application graphique sous Windows
|
||||
# base = "Console" # pour application en console sous Windows
|
||||
|
||||
icone = "icone.ico"
|
||||
if sys.platform == "win32":
|
||||
icone = "icone.ico"
|
||||
|
||||
cible_1 = Executable(
|
||||
script="main.py",
|
||||
base=base,
|
||||
#compress=False, # <= ne pas generer de fichier zip
|
||||
#copyDependentFiles=True,
|
||||
#appendScriptToExe=True,
|
||||
#appendScriptToLibrary=False, # <= ne pas generer de fichier zip
|
||||
icon="icone.ico"
|
||||
)
|
||||
|
||||
|
||||
#############################################################################
|
||||
# creation du setup
|
||||
setup(
|
||||
name="GUI RKHunter",
|
||||
version="1.01",
|
||||
description="GUI RKHunter",
|
||||
author="FRS2013",
|
||||
options={"build_exe": options},
|
||||
executables=[cible_1]
|
||||
)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user