Wie verhindern Sie, dass der Benutzer ein Programm öffnet?

Wie verhindern Sie, dass der Benutzer ein Programm öffnet?

Ich versuche, ein Skript zu schreiben, das den betreffenden Benutzer daran hindert, Programme (meistens Internetbrowser) zu öffnen, die während einer bestimmten Zeit (etwa 1000 bis 1200 Stunden) ausgeführt werden. Das ist wie eine Produktivitätssuite. Ich habe keine großen Probleme mit der Implementierung des Zeitproblems oder des Benutzerproblems. Mein Problem liegt in der Verhinderung der Aufgabenausführung.

Meine Frage ist: Wie stoppe ich einen Prozess, bevor er startet?

Im Moment habe ich eine Endlosschleifenimplementierung mit einem Pseudocode wie:

while(1)
killall midori
killall firefox
sleep(60s)
end 

Aber das ist anstrengend für den Computer und ich möchte eine Aufgabe nicht stoppen, wenn sie gestartet ist, ich möchteverhinderndass die Aufgabe überhaupt erst begonnen wird.

Antwort1

Es gibt mehrere Methoden:

  1. Entfernen Sie die ausführbaren Dateien, deren Zugriff Sie einschränken möchten, von allen Arbeitsstationen aus dem lokal angeschlossenen Speicher und machen Sie sie nur auf einem von Ihnen kontrollierten Netzlaufwerk zugänglich.

  2. Verwenden Sie die SELinux-Richtlinie, um die Ausführung pro Arbeitsstation zu begrenzen

  3. Beschränken Sie den Zugriff auf die Ports, IP-Adressen oder andere Ressourcen, die die fehlerhaften ausführbaren Dateien benötigen, mithilfe von Proxys oder einfach nur iptables

Keine dieser Methoden wird wirksam sein, wenn nicht zuerst eine gut erläuterte Nutzungsrichtlinie umgesetzt wird, die die Benutzer unterzeichnen müssen.

verwandte Informationen