AppArmor from scratch 2: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 34: Zeile 34:
 
  Erfolgreich in Testdatei geschrieben.
 
  Erfolgreich in Testdatei geschrieben.
 
<span id="programm-einschränken"></span>
 
<span id="programm-einschränken"></span>
 
 
= Programm einschränken =
 
= Programm einschränken =
  

Version vom 14. Dezember 2022, 12:59 Uhr

Programm, welches eingeschränkt werden soll

Ein einfaches Programm, welches eine Datei erzeugt, soll so eingeschränkt werden, dass es nur bestimmte Dateien modifizieren darf.

  • cat /home/xinux/apparmor/schreiber.c
#include <stdio.h>

int main(int argc, char *argv[]) {
    int i;
    FILE *fd;
    for (i = 1; i < argc; i++) {
    fd = fopen(argv[i], "w");
    
    if (fd == NULL) {
        fprintf(stderr, "fopen failed for %s\n", argv[i]);
        return 1;
    }

    fprintf(fd, "Schreiben erfolgreich in %s geschrieben\n", argv[i]);
    fclose(fd);
    }

    return 0;
}
  • cd /home/xinux/apparmor
  • gcc schreiber.c -o schreiber
  • ./schreiber Testdatei
  • cat Testdatei
Erfolgreich in Testdatei geschrieben.

Programm einschränken

  • sudo aa-genprof /home/xinux/apparmor/schreiber
  • ./schreiber Testdatei
  • Jetzt Profil einscannen (mit “S”) und generieren und speichern (“S”)
  • sudo aa-enforce home.xinux.apparmor.schreiber

Testen

  • ./schreiber Testdatei
  • cat Testdatei
Schreiben erfolgreich in Testdatei geschrieben.
  • ./schreiber Testdatei2
fopen failed for Testdatei2