{"id":7695,"date":"2021-10-07T13:17:16","date_gmt":"2021-10-07T11:17:16","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=7695"},"modified":"2022-12-12T18:28:36","modified_gmt":"2022-12-12T16:28:36","slug":"linux-dateirechte-auf-dem-raspberry-pi-verstehen-mit-chmod-chgrp-aendern-komplettes-anfaenger-tutorial","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/linux-dateirechte-auf-dem-raspberry-pi-verstehen-mit-chmod-chgrp-aendern-komplettes-anfaenger-tutorial\/","title":{"rendered":"Linux-Dateirechte auf dem Raspberry Pi verstehen &#038; mit chmod\/chgrp \u00e4ndern (komplettes Anf\u00e4nger-Tutorial)"},"content":{"rendered":"<p><em>Sven Kr\u00fcger<\/em> hat kommentiert und gefragt:<\/p>\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-3.png\"><img loading=\"lazy\" decoding=\"async\" width=\"736\" height=\"94\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-3.png\" alt=\"\" class=\"wp-image-7701\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-3.png 736w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-3-300x38.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-3-70x9.png 70w\" sizes=\"auto, (max-width: 736px) 100vw, 736px\" \/><\/a><\/figure>\n<p>Erst einmal Danke f\u00fcr das Lob! Freut mich, dass du alle angeschaut hast und sie dir so gefallen \ud83d\ude42 <\/p>\n<p>Deinen Themenvorschlag greife ich hiermit auf &#8211; Heute soll es um Datei- und Ordnerrechte unter Linux auf dem Raspberry Pi gehen: Wir schauen uns an, welche Rechte es gibt, wie du die konfigurierten Rechte anschauen aber auch \u00e4ndern kannst. Zus\u00e4tzlich gibt es einen kurzen Blick in die Geschichte, damit du auch verstehst, warum es so ist und auf welchen anderen Betriebssystemen die Rechte genau so verwaltet werden. Der Fokus liegt auf die Konsole, weil das am flexibelsten und am besten nachvollziehbar ist. Dennoch schauen wir uns am Schluss auch an, wie es \u00fcber die grafische Oberfl\u00e4che funktioniert.<\/p>\n<p>Auf dem Raspberry Pi l\u00e4uft in aller Regel eine Linux-Distribution. Meist ist das Raspberry Pi OS (ehemals Raspbian), wobei es &#8211; wie unter Linux \u00fcblich &#8211; nicht nur das eine Linux gibt. Sondern eine ganze Reihe an Distributionen, die sich auf verschiedene Anwendungsf\u00e4lle fokussieren. Zum Beispiel <em>RetroPi<\/em>: Es baut auf Raspberry Pi OS auf und macht es besonders einfach, den Pi in einen Emulator f\u00fcr \u00e4ltere Spiele zu verwandeln. Egal welche Distribution ihr verwendet: Linux stammt von Unix ab, die Dateirechte sind immer gleich. Es ist daher wichtig, diese zu verstehen. Dieser Beitrag ist aus diesem Grunde etwas l\u00e4nger. Ich empfehle, ihn komplett anzuschauen. Falls du das nicht m\u00f6chtest oder einzelne Aspekte bereits kennst, kannst du die \u00dcberschriften bzw. Kapitel benutzen um zu springen. Die klickbaren Zeitstempel findest du beim Video zudem unten in der Beschreibung.<\/p>\n<h2 class=\"wp-block-heading\">Ein kurzer Ausflug in die Geschichte von Linux und Unix<\/h2>\n<p>Unix entstand Ende der 1960er Jahre als eines der ersten Systeme, die man als Betriebssystem im heutigen Sinne bezeichnen kann. Es enthielt einige Funktionen, die f\u00fcr damalige Verh\u00e4ltnisse neu bis revolution\u00e4r waren: Unter anderem erm\u00f6glichte es, mehrere Benutzer am gleichen Computer arbeiten zu lassen. Dadurch entstand die Notwendigkeit von Berechtigungen, um Dateien vor unbefugtem Zugriff zu sch\u00fctzen.<\/p>\n<p>Bis dahin handelte es sich bei Unix um ein freies, quelloffenes System. Doch Anfang der 1980er Jahre wurde es vom Telekommunikationskonzern AT&amp;T kommerzialisiert. Fortan musste man hohe Lizenzgeb\u00fchren bezahlen. Es folgten zahlreiche Unix-Derivate als freie Abspaltungen. Viele von Universit\u00e4ten, wo Unix an Verbreitung gewann. Oft waren diese von Unix abstammenden Betriebssysteme nur teilweise oder gar nicht untereinander kompatibel. Um das Chaos zu Ordnen, entstand ab 1985 der POSIX-Standard.<\/p>\n<p>Linux entstand Anfang der 1990er und ist weitgehendst POSIX-Kompatibel. Die Berechtigungen, die wir uns im folgenden anschauen, stammen im Kern also aus der Unix-Zeit. MacOS bzw. OS-X basieren auf BSD, was wiederum auf Unix basiert. Diese Betriebssysteme gelten eben so wie Linux als Unix-\u00c4hnlich.<\/p>\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h11m26s997.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h11m26s997-1024x576.png\" alt=\"\" class=\"wp-image-7718\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h11m26s997-1024x576.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h11m26s997-300x169.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h11m26s997-768x432.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h11m26s997-1536x864.png 1536w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h11m26s997-70x39.png 70w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h11m26s997.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<h2 class=\"wp-block-heading\">Berechtigungen unter Linux einsehen und verstehen<\/h2>\n<h3 class=\"wp-block-heading\">Wie sehe ich die Rechte und welche Rollen gibt es?<\/h3>\n<p>Wir springen wieder nach Vorne ins Jahre 2021 auf den Raspberry Pi: Welche Berechtigungen f\u00fcr Ordner und Dateien gesetzt sind, sehen wir auf der Konsole am einfachsten mit dem Werkzeug <strong>ls<\/strong>, es listet den Inhalt eines Ordners auf. Mit dem Schalter -l zeigt es uns dabei die wichtigsten Berechtigungen an. Zur Demonstration habe ich einen Ordner namens <strong>demo<\/strong> mit etwas Beispielinhalt erzeugt:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">pi@testpi:~\/demo $ ls -l\ninsgesamt 16\n-rw-r--r-- 1 pi   pi     51 Okt  5 12:58 hallo.sh\ndrwxr-xr-x 2 pi   pi   4096 Okt  5 12:57 ordner1\ndrwxr-xr-x 2 root root 4096 Okt  5 12:57 ordner2\nlrwxrwxrwx 1 pi   pi      8 Okt  5 12:59 pi-home -&gt; \/home\/pi\n-rw-r--r-- 1 pi   pi     37 Okt  5 12:58 skript.php<\/code><\/pre>\n<p>Man kann entweder mit cd in den Ordner navigieren, so wie ich das hier gemacht habe. Oder den Pfad als Argument angeben. Den Inhalt des Tem-Ordners erhalten wir etwa auch mit <strong>ls -l \/tmp<\/strong>. Wichtig f\u00fcr die Berechtigungen sind die ersten vier Spalten. Um diese zu verstehen, m\u00fcssen wir uns zun\u00e4chst anschauen, wie das Berechtigungskonzept unter Linux grunds\u00e4tzlich funktioniert: Alles wird wie eine Datei behandelt. Ein Ordner beispielsweise ist ebenfalls eine Datei, aber mit einem speziellen Attribut, dass ihn als Ordner kennzeichnet. Wenn ich mich im folgenden auf Dateien beziehe, sind damit also ebenfalls Ordner gemeint.<\/p>\n<p>Zur Vergabe von Berechtigungen gibt es unter unixoiden Betriebssystemen und damit auch Linux drei Rollen oder Kategorien: <\/p>\n<ol class=\"wp-block-list\">\n<li>Der <strong>Nutzer <\/strong>als Eigent\u00fcmer. Im Regelfall ist das jener Benutzer, der eine Datei angelegt hat. Jede Datei kann nur einem Benutzer geh\u00f6ren.<\/li>\n<li>Eine <strong>Gruppe <\/strong>als Eigent\u00fcmer. Zwar kann jede Datei auch nur einer Gruppe geh\u00f6ren, aber eine Gruppe kann unendlich viele Mitglieder haben. Dar\u00fcber l\u00e4sst sich mehreren Benutzern Zugriff auf eine Datei gew\u00e4hren.<\/li>\n<li><strong>Alle anderen<\/strong> &#8211; Jeder Benutzer der weder (Nutzer-) Eigent\u00fcmer ist, noch in der Eigent\u00fcmer-Gruppe Mitglied ist, erh\u00e4lt diese Rechte.<\/li>\n<\/ol>\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h12m10s946.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h12m10s946-1024x576.png\" alt=\"\" class=\"wp-image-7719\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h12m10s946-1024x576.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h12m10s946-300x169.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h12m10s946-768x432.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h12m10s946-1536x864.png 1536w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h12m10s946-70x39.png 70w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h12m10s946.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<p>Was f\u00fcr das Verst\u00e4ndnis an vielen Stellen, an denen ihr Berechtigungen braucht, noch wichtig ist: Ein Benutzer muss kein Mensch sein. Nat\u00fcrlich kann das eine physische Person sein. Wenn ihr z.B. einen Computer zusammen mit einem Geschwisterteil nutzt, macht es Sinn, f\u00fcr jeden ein Benutzerkonto zu erstellen. Es gibt aber auch Systembenutzer, die gerade auf Servern oft eingesetzt werden: Etwa f\u00fcr ein Programm, dass unter diesem Benutzerkonto gestartet wird. Das ist vor allem sicherheitstechnisch sinnvoll und daher \u00fcblich. <\/p>\n<p>Ein bekanntes Beispiel ist der Apache2 Webserver: Er l\u00e4uft gro\u00dfteils \u00fcber den Benutzer <strong>www-data<\/strong>. Daher habt ihr in unserem Beitrag zur Installation von Apache2 mit PHP und vielleicht auch in anderen Anleitungen schon gesehen, wie wir mit diesem Benutzer arbeiten.<\/p>\n<h3 class=\"wp-block-heading\">Wem geh\u00f6rt eine Datei? Wie setze ich einen Benutzer und eine Gruppe als Eigent\u00fcmer?<\/h3>\n<p>Der Befehl <strong>ls -l<\/strong> zeigt in der dritten Spalte von Links den Benutzer an, dem die Datei geh\u00f6rt. Direkt daneben befindet sich die Eigent\u00fcmer-Gruppe. Warum steht hier in beiden Spalten <strong>pi<\/strong>? Das liegt daran, dass viele Distributionen &#8211; darunter auch Raspberry Pi OS &#8211; beim Anlegen eines Benutzers automatisch eine Gruppe erzeugen, die gleich hei\u00dft. Es gibt also einen Benutzer mit dem Name <strong>pi <\/strong>und eine gleichnamige Gruppe. <\/p>\n<p>Schauen wir uns zun\u00e4chst den Eigent\u00fcmer-Benutzer an. Um diesen zu \u00e4ndern, m\u00fcssen wir root benutzen, etwa mit sudo. Selbst als Eigent\u00fcmer darf ein normaler Benutzer niemand anders zum Eigent\u00fcmer ernennen. Der root-Benutzer hat h\u00f6chste Rechte und kann sich daher \u00fcber alle Berechtigungen hinweg setzen. F\u00fcr ihn greift auch die Berechtigung nicht, die f\u00fcr &#8222;alle anderen&#8220; gesetzt ist. Damit wird klar, warum der root-Benutzer so sensibel ist und mit Bedacht genutzt werden sollte.<\/p>\n<p>In diesem Beispiel habe ich zwei Benutzer: Einmal den Standardnutzer <strong>pi <\/strong>und einen selbst angelegten namens <strong>ulabs<\/strong>. Der ulabs Nutzer soll neuer Eigent\u00fcmer von <strong>skript.php<\/strong> werden. Schauen wir uns zun\u00e4chst an, wer derzeitiger Eigent\u00fcmer ist:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">ls -lh skript.php\n-rw-r--r-- 1 pi pi 37 Okt  5 12:58 skript.php<\/code><\/pre>\n<p>Um den Eigent\u00fcmer-Benutzer zu wechseln, wird der Befehl <strong>chown <\/strong>genutzt. Merkhilfe: <strong>chown <\/strong>ist die Abk\u00fcrzung f\u00fcr <em><strong>ch<\/strong>ange <strong>own<\/strong>er<\/em>, also <em>Besitzer \u00e4ndern<\/em>. Es folgt der Name der Gruppe und die Datei:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">sudo chown ulabs skript.php \nls -l skript.php \n-rw-r--r-- 1 ulabs pi 37 Okt  5 12:58 skript.php<\/code><\/pre>\n<p>Nun ist der Benutzer <strong>ulabs<\/strong> neuer Eigent\u00fcmer. Weiterhin aber auch noch die Gruppe <strong>pi<\/strong>. Um die Gruppe ebenfalls zu \u00e4ndern, gibt es den Befehl <strong>chgrp<\/strong>. Wie <strong>chown <\/strong>steht dies f\u00fcr <em><strong>ch<\/strong>ange <strong>gr<\/strong>ou<strong>p<\/strong><\/em>, also <em>Gruppe \u00e4ndern<\/em>. Der weitere Aufruf ist identisch:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">$ sudo chgrp ulabs skript.php \n$ ls -l skript.php \n-rw-r--r-- 1 ulabs ulabs 37 Okt  5 12:58 skript.php<\/code><\/pre>\n<p>Mit den beiden Befehlen k\u00f6nnt ihr den Eigent\u00fcmer-Nutzer von der Gruppe getrennt \u00e4ndern. Beides gleichzeitig geht aber auch mit dem Befehl chown, in dem man Benutzer und Gruppe mit einem Doppelpunkt trennt. Folgendes Beispiel \u00e4ndert den Besitzer-Benutzer auf <strong>pi <\/strong>und die Gruppe auf <strong>ulabs<\/strong>:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">$ sudo chown pi:ulabs skript.php \n$ ls -l skript.php \n-rw-r--r-- 1 pi ulabs 37 Okt  5 17:55 skript.php<\/code><\/pre>\n<p>Wenn ihr mit Ordnern statt Dateien arbeitet, ist eine Besonderheit zu beachten: Die Rechte des Ordners werden beim \u00e4ndern NICHT automatisch an die Dateien vererbt! Beispiel: Wir haben einen Ordner namens <strong>ordner1<\/strong> mit einer Datei <strong>datei.sh<\/strong>. Beide geh\u00f6ren dem Benutzer pi sowie der Gruppe pi. \u00c4ndern wir die Gruppen-Eigent\u00fcmerschaft auf <strong>ulabs<\/strong>, greift dies zwar f\u00fcr den Ordner. Die Datei darin geh\u00f6rt aber nach wie vor der Gruppe <strong>pi<\/strong>:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">$ sudo chgrp ulabs ordner1\n$ ls -l | grep ordner1\ndrwxr-xr-x 2 pi   ulabs 4096 Okt  5 14:25 ordner1\n$ ls -l ordner1\n-rw-r--r-- 1 pi pi 0 Okt  5 14:25 datei.sh<\/code><\/pre>\n<p>M\u00f6chtet ihr die \u00c4nderung f\u00fcr den Ordner inklusive aller Unterordner und Dateien anwenden, wird der Schalter -R ben\u00f6tigt. Er steht f\u00fcr Rekursion, d.H. auf alles anwenden was sich in diesem Ordner befindet. <strong>Rekursion ist mit Vorsicht anzuwenden!<\/strong> Beides gilt auch f\u00fcr <strong>chown<\/strong>. <\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">$ sudo chgrp ulabs ordner1 -R\n$ ls -l ordner1\n-rw-r--r-- 1 pi ulabs 0 Okt  5 14:25 datei.sh<\/code><\/pre>\n<h3 class=\"wp-block-heading\">Welche Berechtigungen gibt es f\u00fcr die Rollen\/Kategorien und wo sieht man diese?<\/h3>\n<p>Auf die drei Rollen (also Benutzer und Gruppe als Eigent\u00fcmer sowie geb\u00fcndelt allen anderen Benutzern) k\u00f6nnen wir nun Rechte vergeben, von denen es drei gibt. Die Rechte lassen sich in zwei Schreibweisen festlegen. Beginnen wir mit der lesbaren Variante: Buchstaben.<\/p>\n<figure class=\"wp-block-table\">\n<table>\n<tbody>\n<tr>\n<td><strong>Berechtigung<\/strong><\/td>\n<td><strong>Buchstabe<\/strong><\/td>\n<td><strong>Zahl (Oktal)<\/strong><\/td>\n<\/tr>\n<tr>\n<td>Keine<\/td>\n<td><\/td>\n<td>0<\/td>\n<\/tr>\n<tr>\n<td>Lesen<\/td>\n<td>r (<strong>r<\/strong>ead)<\/td>\n<td>4<\/td>\n<\/tr>\n<tr>\n<td>Schreiben<\/td>\n<td>w (<strong>w<\/strong>rite)<\/td>\n<td>2<\/td>\n<\/tr>\n<tr>\n<td>Ausf\u00fchren<\/td>\n<td>x (e<strong>x<\/strong>ecute)<\/td>\n<td>1<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/figure>\n<p>Lesen bedeutet, ich kann eine Datei \u00f6ffnen (z.B. den Inhalt einer Textdatei einsehen) aber nicht ver\u00e4ndern. F\u00fcr Ver\u00e4nderungen werden Schreibrechte ben\u00f6tigt. Das Ausf\u00fchren ist eine Besonderheit von Linux bzw. Unix, die vor allem Windows-Nutzer nicht kennen: Standardm\u00e4\u00dfig ist ein Bin\u00e4rprogramm (unter Windows eine .exe Datei) unter Linux aus Sicherheitsgr\u00fcnden nicht ausf\u00fchrbar. Dies ist nur m\u00f6glich, wenn die &#8222;Ausf\u00fchren&#8220; Berechtigung gesetzt ist. <\/p>\n<p>Jede Rolle bzw. Kategorie kann eines oder alle vier dieser Rechte besitzen. Welche Rechte aktuell gesetzt sind, sieht man in der ersten Spalte von<strong> ls -l<\/strong>:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">-rw-r--r-- 1 pi   ulabs   37 Okt  5 12:58 skript.php<\/code><\/pre>\n<p><strong>-rw-r&#8211;r&#8211;<\/strong> gibt alle Berechtigungen geb\u00fcndelt an. Der erste Buchstabe zeigt, um welche Art von <em>Datei <\/em>es sich handelt. Ein Minus &#8211; steht f\u00fcr eine normale Datei. Bei Ordnern steht hier <strong>d<\/strong> f\u00fcr <strong>d<\/strong>irectory. Hier  sieht man deutlich die <em>Alles ist eine Datei<\/em> Philosophie: Nur dieses eine Flag unterscheidet Dateien und Ordner. Neben <strong>l<\/strong> (symbolic <strong>l<\/strong>ink) f\u00fcr Verweise auf Dateien gibt es noch ein paar speziellere Arten wie u.a. <strong>b<\/strong> f\u00fcr <strong>b<\/strong>lock devices oder <strong>s<\/strong> f\u00fcr <strong>s<\/strong>ockets. F\u00fcr den Anfang reicht es zu wissen: Minus hei\u00dft Datei, <strong>d<\/strong> Ordner und <strong>l<\/strong> ist eine Verkn\u00fcpfung.<\/p>\n<p>Nun folgen drei Bl\u00f6cke mit jeweils drei Buchstaben f\u00fcr den Eigent\u00fcmer-Besitzer, die Eigent\u00fcmer-Gruppe und alle anderen. Das Format ist immer <strong>rwx<\/strong>. Ist eine Berechtigung nicht aktiv, wird sie durch ein Minus ersetzt. Im Beispiel hei\u00dft das: Der Eigent\u00fcmer-Besitzer darf Lesen (r) und Schreiben (w), Ausf\u00fchren ist nicht erlaubt. Die Eigent\u00fcmer-Gruppe darf nur lesen, ansonsten nichts. Das gleiche gilt f\u00fcr alle anderen.<\/p>\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h12m55s994.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h12m55s994-1024x576.png\" alt=\"\" class=\"wp-image-7720\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h12m55s994-1024x576.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h12m55s994-300x169.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h12m55s994-768x432.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h12m55s994-1536x864.png 1536w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h12m55s994-70x39.png 70w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h12m55s994.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<p>\u00c4ndern lassen sich die Rechte mit dem Werkzeug <strong>chmod<\/strong>. Es steht f\u00fcr <strong>ch<\/strong>ange <strong>mod<\/strong>, wobei mit <em>mod<\/em> die Dateirechte gemeint sind. Bevor wir  Beginnen, ein wichtiger Hinweis: Au\u00dferhalb eures Home-Verzeichnisses und <strong>\/tmp<\/strong> solltet ihr die Rechte von Dateien und vor allem von ganzen Ordnern <strong>nur dann \u00e4ndern, wenn ihr versteht was ihr tut!<\/strong> F\u00fchrt nicht einfach irgendwelche Befehle aus dem Internet aus. Eine gute Anleitung erkl\u00e4rt euch nicht nur was ihr da tut, sondern auch warum und zeigt im besten Falle sogar Alternativen auf. Das unbedachte setzen von Dateirechten kann verschiedene Probleme wie z.B. Sicherheitsl\u00fccken erzeugen, vor allem in Kombination mit Diensten, die nach au\u00dfen hin erreichbar sind. Zum ausprobieren am besten einen Ordner in eurem Home-Verzeichnis anlegen oder in <strong>\/tmp,<\/strong> dort k\u00f6nnt ihr recht gefahrlos experimentieren.<\/p>\n<p>Der Aufruf von <strong>chmod <\/strong>geschieht nach folgendem Muster:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">chmod &lt;modus&gt; datei<\/code><\/pre>\n<p>Beim Modus m\u00fcssen wir zun\u00e4chst die Rolle bzw. Kategorie angeben, sie werden jeweils mit dem Anfangsbuchstabe abgek\u00fcrzt:<\/p>\n<ul class=\"wp-block-list\">\n<li><strong>u<\/strong> f\u00fcr den Eigent\u00fcmer-Benutzer (<strong>u<\/strong>ser)<\/li>\n<li><strong>g<\/strong> f\u00fcr die Eigent\u00fcmer-Gruppe (<strong>g<\/strong>roup)<\/li>\n<li><strong>o<\/strong> f\u00fcr <strong>o<\/strong>thers, also alle anderen Benutzer<\/li>\n<\/ul>\n<p>Danach folgt ein Plus (+) um Rechte hinzuzuf\u00fcgen, oder ein Minus (-) zum entfernen. Schlussendlich noch das gew\u00fcnschte Recht: <strong>r<\/strong> f\u00fcr Lesen, <strong>w<\/strong> f\u00fcr Schreiben und <strong>x<\/strong> f\u00fcr das Execute-Bit, damit die Datei ausgef\u00fchrt werden kann.<\/p>\n<p>Beispiel: Das <strong>skript.php<\/strong> von kann nur vom Eigent\u00fcmer-Benutzer geschrieben werden, nicht aber von der Eigent\u00fcmer-Gruppe. Um das zu \u00e4ndern, f\u00fchren wir folgenden chmod Befehl aus:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">$ chmod g+w skript.php\n$ ls -l skript.php \n-rw-rw-r-- 1 pi ulabs 37 Okt  5 12:58 skript.php<\/code><\/pre>\n<p>Aus <strong>-rw-r<\/strong> ist <strong>-rw-rw<\/strong> geworden. Mit <strong>g-w<\/strong> k\u00f6nnten wir das Recht wieder entfernen. Sollen mehrere Rechte auf einmal gesetzt bzw. entfernt werden, trennt man diese mit Komma:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">chmod g-w,o-r skript.php\n$ ls -l skript.php \n-rw-r----- 1 pi ulabs 37 Okt  5 12:58 skript.php<\/code><\/pre>\n<p>Der Eigent\u00fcmer-Gruppe haben wir mit <strong>g-w<\/strong> das Schreibrecht entzogen, eben so wie allen anderen Benutzern mit <strong>o-r<\/strong> (o = other). Dadurch kann der Eigent\u00fcmer-Benutzer Lesen und Schreiben, die Eigent\u00fcmer-Gruppe Lesen, alle anderen d\u00fcrfen nichts machen. F\u00fcr ganze Ordner m\u00fcssen wir den rekursiven Modus mit -R verwenden. Wie bei <strong>chgrp <\/strong>zuvor schon erw\u00e4hnt, sollte auch das mit Bedacht genutzt werden &#8211; wie generell jegliche Rekursion.<\/p>\n<p>W\u00e4hrend sich die + und &#8211; Operatoren gut eignen, um bestehende Berechtigungen anzupassen, m\u00f6chte man diese vielleicht auch einfach \u00fcberschreiben. Beispielsweise in einem Skript, welches sicherstellt, dass die Berechtigungen 1:1 wie definiert umgesetzt sind. Dazu einfach ein Istgleich-Zeichen (=) benutzen:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">chmod u=rwx,g=r skript.php\n<\/code><\/pre>\n<p>Wird eine Kategorie bzw. Rolle nicht angegeben, erh\u00e4lt sie keinerlei Rechte. In diesem Beispiel darf der Eigent\u00fcmer-Benutzer alles (also Lesen, Schreiben und Ausf\u00fchren). Die Eigent\u00fcmer-Gruppe nur lesen und alle anderen d\u00fcrfen nicht darauf zugreifen.<\/p>\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h13m37s809.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h13m37s809-1024x576.png\" alt=\"\" class=\"wp-image-7721\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h13m37s809-1024x576.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h13m37s809-300x169.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h13m37s809-768x432.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h13m37s809-1536x864.png 1536w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h13m37s809-70x39.png 70w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h13m37s809.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<h3 class=\"wp-block-heading\">Was hat es mit den Nummern auf sich?<\/h3>\n<p>Ihr habt vielleicht in Anleitungen schon einmal Berechtigungen mit Nummern gesehen, beispielsweise <strong>chmod 660<\/strong>, <strong>777 <\/strong>oder andere Zahlenwerte. Man kann alle gezeigten Rechte auch oktal abbilden, also mit Ziffern von 0 bis 7. Schauen wir uns mal das oktale System am Beispiel von <strong>660 <\/strong>an. Es kann eine f\u00fchrende Null besitzen, etwa 0660, das ist an dieser Stelle irrelevant. Jede Ziffer steht wieder f\u00fcr eine Kategorie bzw. Rolle, in der gleichen Reihenfolge wie bei den Buchstaben: Erste 6 f\u00fcr den Eigent\u00fcmer-Benutzer, die zweite f\u00fcr die Eigent\u00fcmer-Gruppe und die Dritte f\u00fcr alle anderen.<\/p>\n<p>In der Tabelle oben wurde schon kurz erw\u00e4hnt, dass 1 f\u00fcr Ausf\u00fchren, 2 f\u00fcr Schreiben und 4 f\u00fcr Leserechte steht. M\u00f6chte man mehrere Rechte gew\u00e4hren, addiert man einfach die Zahlen. 6 steht somit f\u00fcr Lesen (4) + Schreiben (2). Folgende Befehle erzeugen daher die gleichen Rechte:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">chmod u=rw,g=rw,o= skript.php\nchmod 660 skript.php\n<\/code><\/pre>\n<p>In beiden F\u00e4llen d\u00fcrfen Eigent\u00fcmer-Nutzer und Gruppe sowohl Lesen als auch Schreiben, der Rest hat keinerlei Rechte. M\u00f6chten wir allen anderen Benutzern Leserechte gew\u00e4hren, m\u00fcsste die 0 durch eine 4 ersetzt werden bzw. <strong>o=r<\/strong> zur anderen Schreibweise hinzugef\u00fcgt:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">chmod u=rw,g=rw,o=r skript.php\nchmod 664 skript.php\n\n# Kontrolle\n$ ls -l skript.php \n-rw-rw-r-- 1 pi ulabs 37 Okt  5 12:58 skript.php\n<\/code><\/pre>\n<p>Der wesentliche Unterschied liegt darin, dass man bei der oktalen Schreibweise weniger Tippen muss. Einige erfahrenere Linux-Nutzer bevorzugen sie daher. F\u00fcr Anf\u00e4nger w\u00fcrde ich dagegen die Buchstaben empfehlen, weil sie lesbarer und ohne Vorwissen logischer sind. Hat man das Konzept einmal verstanden, ist das herleiten von <strong>u=rw,g=rw<\/strong> einfacher statt sich zu \u00fcberlegen bzw. nachschlagen zu m\u00fcssen, wof\u00fcr die 6 noch mal stand. Letztendlich kann man beide Wege nutzen und erh\u00e4lt die gleichen Berechtigungen.<\/p>\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h14m06s469.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"447\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h14m06s469-1024x447.png\" alt=\"\" class=\"wp-image-7723\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h14m06s469-1024x447.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h14m06s469-300x131.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h14m06s469-768x336.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h14m06s469-1536x671.png 1536w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h14m06s469-70x31.png 70w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h14m06s469.png 1737w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<h2 class=\"wp-block-heading\">Was ist das sogenannte &#8222;Sticky Bit&#8220;?<\/h2>\n<p>Zuvor hatten wir kurz \u00fcber die f\u00fchrende Null gesprochen, etwa 0600 statt 600. Dahinter verbirgt sich das sogenannte &#8222;Sticky Bit&#8220;: Fr\u00fcher diente es dazu, um ausf\u00fchrbare Dateien automatisch in den Swap, also die Auslagerungsdatei, zu kopieren. Dadurch beschleunigte sich der n\u00e4chste Start des Programmes. Heutzutage hat das durch bessere Hardware und modernere Optimierungen in Linux kaum mehr Relevanz f\u00fcr die Leistung.<\/p>\n<p>Anders verh\u00e4lt es sich bei Ordnern: Dort bewirkt es, dass man nur Dateien \u00e4ndern und l\u00f6schen darf, die der Benutzer selbst angelegt hat. Das ist zum Beispiel in <strong>\/tmp<\/strong> sinnvoll: Dort darf standardm\u00e4\u00dfig jeder Nutzer schreiben und ausf\u00fchren &#8211; aber er soll nicht die Daten anderer Programme\/Benutzer ver\u00e4ndern k\u00f6nnen.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">pi@testpi:~ $ touch \/tmp\/pi-test\nulabs@testpi:~ $ rm -f \/tmp\/pi-test\nrm: das Entfernen von &#039;\/tmp\/pi-test&#039; ist nicht m\u00f6glich: Die Operation ist nicht erlaubt<\/code><\/pre>\n<p>Man erkennt es am Buchstabe &#8222;t&#8220;, der am Ende der Berechtigungen steht, falls das Sticky-Bit aktiv ist:<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">$ ls -l \/ | grep tmp\ndrwxrwxrwt  16 root root  4096 Okt  5 17:02 tmp<\/code><\/pre>\n<p>Um es zu setzen, f\u00fcgt man zur 3-Stelligen Berechtigung (z.B. <strong>660<\/strong>) vorne die Ziffer &#8222;eins&#8220; an: <strong>1<\/strong>660 aktiviert das Sticky-Bit, <strong>0<\/strong>660 deaktiviert es. Standardm\u00e4\u00dfig l\u00e4sst man die vierte Ziffer weg, wodurch es deaktiviert ist. Im Alltag ben\u00f6tigt man das Sticky-Bit eher selten, ich wollte es der Vollst\u00e4ndigkeit halber dennoch kurz aufzeigen.<\/p>\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h14m32s782.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h14m32s782-1024x576.png\" alt=\"\" class=\"wp-image-7724\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h14m32s782-1024x576.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h14m32s782-300x169.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h14m32s782-768x432.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h14m32s782-1536x864.png 1536w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h14m32s782-70x39.png 70w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h14m32s782.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<h2 class=\"wp-block-heading\">Wie kann ich mehrere Benutzer auf eine Datei bzw. einen Ordner berechtigen?<\/h2>\n<p>Zuvor hatte ich bei den Kategorien bzw. Rollen darauf hingewiesen, dass es nur einen Nutzer als Eigent\u00fcmer geben darf. So sehen es die urspr\u00fcnglichen Unix-Rechte vor. Es gibt mit ACLs (also <em>Access Control Lists<\/em>) eine M\u00f6glichkeit, die Beschr\u00e4nkung auf einen Benutzer bzw. eine Gruppe zu umgehen. Damit sind feinere Berechtigungen m\u00f6glich. Aber: Das erh\u00f6ht die Komplexit\u00e4t und Fehleranf\u00e4lligkeit. Wirklich brauchen tut man es zudem nur in wenigen Ausnahmef\u00e4llen. Meist auf Systemen mit sehr vielen Benutzern oder in bestimmten Softwarekonstellationen. <\/p>\n<p>F\u00fcr Anf\u00e4nger ist dies nicht zu empfehlen, weswegen ich an dieser Stelle nicht weiter darauf eingehe. Vieles l\u00e4sst sich mit dem gezeigten Konzept aus Benutzer und Gruppe als Eigent\u00fcmer abbilden. Das w\u00fcrde ich auch bevorzugt nutzen. Um mehreren Benutzer Zugriff zu gew\u00e4hren, reicht oft eine Gruppe, in die man diese Nutzer aufnimmt. Wenn euch erweiterte ACLs dennoch interessieren, schreibt es gerne in die Kommentare &#8211; eventuell greifen wir das in Zukunft in einem eigenen Beitrag auf.<\/p>\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h16m07s293.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"328\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h16m07s293-1024x328.png\" alt=\"\" class=\"wp-image-7725\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h16m07s293-1024x328.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h16m07s293-300x96.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h16m07s293-768x246.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h16m07s293-1536x492.png 1536w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h16m07s293-70x22.png 70w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h16m07s293.png 1599w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<h2 class=\"wp-block-heading\">Verwaltung der Rechte \u00fcber eine grafische Oberfl\u00e4che<\/h2>\n<p>Habt ihr auf dem Pi eine grafische Desktop-Umgebung installiert, kann man die Berechtigungen auch dort einsehen sowie teilweise \u00e4ndern: Dazu navigiert ihr im Dateiexplorer zur gew\u00fcnschten Datei, dann Rechtsklick &gt; Eigenschaften. Im Reiter <em>Berechtigungen<\/em> sehr ihr den Eigent\u00fcmer-Besitzer sowie die Gruppe. Beides l\u00e4sst sich hier jedoch nicht \u00e4ndern, da die grafische Oberfl\u00e4che (aus gutem Grund) im Kontext des Benutzers l\u00e4uft, anstelle von root.<\/p>\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-4.png\"><img loading=\"lazy\" decoding=\"async\" width=\"945\" height=\"682\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-4.png\" alt=\"\" class=\"wp-image-7702\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-4.png 945w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-4-300x217.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-4-768x554.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/grafik-4-70x51.png 70w\" sizes=\"auto, (max-width: 945px) 100vw, 945px\" \/><\/a><\/figure>\n<p>Die Zugriffsrechte kann man hingegen \u00e4ndern, sofern der angemeldete Benutzer (Standardm\u00e4\u00dfig pi) Eigent\u00fcmer ist. Im Home-Verzeichnis beispielsweise ist das in der Regel kein Problem. Bei systemweiten Konfigurationsdateien sto\u00dfen wir damit an Grenzen. Den Dateiexplorer mit root-Rechten zu starten, ist nicht zu empfehlen.<\/p>\n<p>Ein weiterer Grund in meinen Augen, die Konsole tendenziell zu bevorzugen. Dort k\u00f6nnt ihr (entsprechende Rechte vorausgesetzt) alles uneingeschr\u00e4nkt ausf\u00fchren. Au\u00dferdem seid ihr nicht auf eine grafische Oberfl\u00e4che angewiesen: Die Konsolen-Varianten funktionieren auf einer Linux-Workstation mit Desktop-Umgebung eben so wie auf dem Pi oder jedem Linux-Server. Die Befehle lassen sich mit einem Bash-Skript auch einfach automatisieren sowie dokumentieren.<\/p>\n<h2 class=\"wp-block-heading\">Warum sollte man sich die M\u00fche mit Benutzern, Gruppen und Berechtigungen machen? Es gibt doch chmod 777!<\/h2>\n<p>Immer wieder sieht man in verschiedenen Diskussionen und teils sogar Foren, man soll Berechtigungsprobleme doch einfach mit <strong>chmod 777<\/strong> l\u00f6sen &#8211; am besten noch rekursiv. Das ist viel einfacher und dann geht alles. Letzteres mag zwar oft stimmen, ist zeitgleich aber auch das Problem: <strong>777 <\/strong>hei\u00dft <strong>jeder <\/strong>darf <strong>alles<\/strong>. Klar kann man das zum testen mal machen. Gerade in einer VM oder auf einem Testger\u00e4t ist das manchmal sogar hilfreich &#8211; denn dann kann man bei der Fehlersuche ausschlie\u00dfen, dass es irgendwo Berechtigungsprobleme gibt. Produktiv sollte an das aber besser nicht machen.<\/p>\n<p>Zum einen wegen des bekannten Spruches <em>Mit gro\u00dfer Macht geht auch gro\u00dfe Verantwortung einher<\/em>. Durch menschliche Fehler kann ein Programm oder man selbst versehentlich Dinge tun, die man nicht wollte. Wenn der Webserver problemlos die gesamte Root-Partition l\u00f6schen kann, ist das System anschlie\u00dfend kaputt. Verweigert das System die L\u00f6schung von 90% davon, ist der Schaden zumindest deutlich geringer. <\/p>\n<p>Und dann ist da noch das Thema Sicherheit. Sp\u00e4testens wenn ihr mehrere Benutzer auf einem Pi oder anderem Linux-System habt, m\u00f6chtet ihr denen sicher nicht Vollzugriff geben. Das ist ein unn\u00f6tiges Risiko, wenn sie nur auf ein paar einzelne Ordner Zugreifen m\u00fcssen. <\/p>\n<p>Wir m\u00fcssen uns zudem im klaren sein, dass praktisch jede Software Sicherheitsl\u00fccken besitzt. Manche mehr, andere weniger. Die Auswirkungen sind ebenfalls unterschiedlich gravierend. Aber grunds\u00e4tzlich sollten wir davon ausgehen, dass es welche gibt. Wenn eine Software alles darf, kann sie im Falle einer Sicherheitsl\u00fccke auch auf alles zugreifen und sensible Daten zugreifen oder gar manipulieren, mit denen sie eigentlich nichts zutun hat. Im schlimmsten Falle ist das ein Totalschaden, der z.B. durch erbeutete Zugangsdaten von anderen Systemen noch gravierender wird, als auf den ersten Blick vermutet.<\/p>\n<p>Eine elementare Grundregel f\u00fcr sichere Systeme ist daher: <strong>So viele Zugriffsrechte wie n\u00f6tig, so wenig wie m\u00f6glich<\/strong>. Das gilt um so mehr f\u00fcr Schnittstellen nach au\u00dfen, beispielsweise einen Webserver &#8211; vor allem wenn dieser ins Internet erreichbar ist. Gerade bei so was muss einem klar sein: Das ist eine Schnittstelle ins Heimnetzwerk. Ein schlecht abgesicherter Pi kann das Einfallstor f\u00fcr ganz andere Ger\u00e4te im Netzwerk sein, die vielleicht wesentlich sensiblere Daten beinhalten &#8211; aber das ist ein eigenes Thema.<\/p>\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h16m35s678.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h16m35s678-1024x576.png\" alt=\"\" class=\"wp-image-7726\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h16m35s678-1024x576.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h16m35s678-300x169.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h16m35s678-768x432.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h16m35s678-1536x864.png 1536w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h16m35s678-70x39.png 70w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2021\/10\/vlcsnap-2021-10-07-13h16m35s678.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<p>Wichtig an dieser Stelle ist, dass <strong>chmod 777 schlechte Praxis<\/strong> darstellt! Stattdessen solltet ihr eure Berechtigungsstruktur entsprechend einrichten, dass der Nutzer bzw. die jeweilige Gruppe entsprechend jene Rechte bekommt, die tats\u00e4chlich gebraucht werden. Wie das geht, wisst ihr ja nun \ud83d\ude42 Nat\u00fcrlich soll das nicht hei\u00dfen, dass ihr nichts mehr ausprobiert. Es soll sensibilisieren, dass man zwischen Spielwiese und Produktivsystem trennt und sich sp\u00e4testens beim produktiven System Gedanken um dessen Absicherung machen sollte, statt sich mit Methoden wie chmod 777 das Sicherheitskonzept zu zerschie\u00dfen. Linux ist da n\u00e4mlich ziemlich m\u00e4chtig und restriktiv &#8211; die beste Festung n\u00fctzt allerdings wenig, wenn der Besitzer dessen Hintereingang offen stehen l\u00e4sst.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Sven Kr\u00fcger hat kommentiert und gefragt: Erst einmal Danke f\u00fcr das Lob! Freut mich, dass du alle angeschaut hast und sie dir so gefallen \ud83d\ude42 Deinen Themenvorschlag greife ich hiermit auf &#8211; Heute soll es um Datei- und Ordnerrechte unter Linux auf dem Raspberry Pi gehen: Wir schauen uns an, welche Rechte es gibt, wie &#8230;<\/p>\n","protected":false},"author":5,"featured_media":7710,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[671],"tags":[970,385,75],"class_list":["post-7695","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-raspberry-pi","tag-berechtigungen","tag-chmod","tag-linux"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/7695","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=7695"}],"version-history":[{"count":15,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/7695\/revisions"}],"predecessor-version":[{"id":9825,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/7695\/revisions\/9825"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/7710"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=7695"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=7695"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=7695"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}