AppArmor from scratch 2: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
Zeile 2: Zeile 2:
 
= Programm, welches eingeschränkt werden soll =
 
= Programm, welches eingeschränkt werden soll =
  
Ein einfaches Programm, welches eine Dateien erzeugt
+
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>
 
  #include <stdio.h>
 
   
 
   
Zeile 17: Zeile 20:
 
     }
 
     }
 
   
 
   
     fprintf(fd, "Schreiben erfolgreich für %s\n", argv[i]);
+
     fprintf(fd, "Schreiben erfolgreich in %s geschrieben\n", argv[i]);
 
     fclose(fd);
 
     fclose(fd);
 
     }
 
     }
Zeile 23: Zeile 26:
 
     return 0;
 
     return 0;
 
  }
 
  }
 +
* cd /home/xinux/apparmor
 +
* gcc schreiber.c schreiber
 +
* ./schreiber Testdatei
 +
* cat Testdatei
 +
 +
<!----->
 +
Erfolgreich in Testdatei geschrieben.
 +
<span id="programm-einschränken"></span>
 +
= 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
 +
 +
<!----->
 +
<span id="testen"></span>
 +
= Testen =
 +
 +
* ./schreiber Testdatei
 +
* cat Testdatei
 +
 +
<!----->
 +
Schreiben erfolgreich in Testdatei geschrieben.
 +
* ./schreiber Testdatei2
 +
 +
<!----->
 +
fopen failed for Testdatei2

Version vom 14. Dezember 2022, 10: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 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