AppArmor from scratch 2: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „ #include <stdio.h> int main(int argc, char *argv[]) { int i; FILE *fd; for (i = 1; i < argc; i++) { fd = fopen(argv[i], "w");…“)
 
 
(17 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
 +
<span id="programm-welches-eingeschränkt-werden-soll"></span>
 +
= 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>
 
  #include <stdio.h>
 
   
 
   
Zeile 8: Zeile 17:
 
      
 
      
 
     if (fd == NULL) {
 
     if (fd == NULL) {
         fprintf(stderr, "fopen failed for %s
+
         fprintf(stderr, "fopen failed for %s\n", argv[i]);
", argv[i]);
 
 
         return 1;
 
         return 1;
 
     }
 
     }
 
   
 
   
     fprintf(fd, "Schreiben erfolgreich für %s
+
     fprintf(fd, "Erfolgreich in %s geschrieben\n", argv[i]);
", argv[i]);
 
 
     fclose(fd);
 
     fclose(fd);
 
     }
 
     }
Zeile 20: Zeile 27:
 
     return 0;
 
     return 0;
 
  }
 
  }
 +
* cd /usr/local/bin
 +
* gcc schreiber.c -o schreiber
 +
* cd /root
 +
* schreiber Testdatei
 +
* cat Testdatei
 +
 +
<!----->
 +
Erfolgreich in Testdatei geschrieben.
 +
<span id="programm-einschränken"></span>
 +
 +
= 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
 +
 +
<!----->
 +
<span id="testen"></span>
 +
 +
= Testen =
 +
 +
* schreiber Testdatei
 +
* cat Testdatei
 +
 +
<!----->
 +
Erfolgreich in Testdatei geschrieben.
 +
* ./schreiber Testdatei2
 +
 +
<!----->
 +
fopen failed for Testdatei2

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