AppArmor from scratch 2: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 52: Zeile 52:
  
 
<!----->
 
<!----->
  Schreiben erfolgreich in Testdatei geschrieben.
+
  Erfolgreich in Testdatei geschrieben.
 
* ./schreiber Testdatei2
 
* ./schreiber Testdatei2
  
 
<!----->
 
<!----->
 
  fopen failed for Testdatei2
 
  fopen failed for Testdatei2

Version vom 17. Januar 2023, 10:22 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.

  • apt install gcc
  • cat /usr/local/bin/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, "Erfolgreich in %s geschrieben\n", argv[i]);
    fclose(fd);
    }

    return 0;
}
  • cd /usr/local/bin
  • gcc schreiber.c -o schreiber
  • ./schreiber Testdatei
  • cat Testdatei
Erfolgreich in Testdatei geschrieben.

Programm einschränken

  • sudo aa-genprof /usr/local/bin/schreiber
  • ./schreiber Testdatei
  • Jetzt Profil einscannen (mit “S”) und generieren und speichern (“S”)
  • sudo aa-enforce usr.local.bin.schreiber

Testen

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