AppArmor from scratch 2: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 4: Zeile 4:
 
Ein einfaches Programm, welches eine Datei erzeugt, soll so eingeschränkt werden, dass es nur bestimmte Dateien modifizieren darf.
 
Ein einfaches Programm, welches eine Datei erzeugt, soll so eingeschränkt werden, dass es nur bestimmte Dateien modifizieren darf.
  
* apt install gcc
+
* apt install gcc apparmor-utils
 
* cat /usr/local/bin/schreiber.c
 
* cat /usr/local/bin/schreiber.c
  
Zeile 29: Zeile 29:
 
* cd /usr/local/bin
 
* cd /usr/local/bin
 
* gcc schreiber.c -o schreiber
 
* gcc schreiber.c -o schreiber
* ./schreiber Testdatei
+
* cd /root
 +
* schreiber Testdatei
 
* cat Testdatei
 
* cat Testdatei
  
Zeile 39: Zeile 40:
  
 
* sudo aa-genprof /usr/local/bin/schreiber
 
* sudo aa-genprof /usr/local/bin/schreiber
* ./schreiber Testdatei
+
* schreiber Testdatei
 
* Jetzt Profil einscannen (mit “S”) und generieren und speichern (“S”)
 
* Jetzt Profil einscannen (mit “S”) und generieren und speichern (“S”)
 
* sudo aa-enforce usr.local.bin.schreiber
 
* sudo aa-enforce usr.local.bin.schreiber
Zeile 48: Zeile 49:
 
= Testen =
 
= Testen =
  
* ./schreiber Testdatei
+
* schreiber Testdatei
 
* cat Testdatei
 
* cat Testdatei
  

Aktuelle Version vom 10. August 2023, 11:42 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 apparmor-utils
  • 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
  • cd /root
  • 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