{"id":5121,"date":"2024-10-07T10:00:00","date_gmt":"2024-10-07T10:00:00","guid":{"rendered":"https:\/\/netguide.io\/linux\/unraid-docker-guid-und-pgid-erklaert-2\/"},"modified":"2024-10-07T10:00:00","modified_gmt":"2024-10-07T10:00:00","slug":"unraid-docker-guid-und-pgid-erklaert-2","status":"publish","type":"post","link":"https:\/\/netguide.io\/linux\/de\/unraid-docker-guid-und-pgid-erklaert-2\/","title":{"rendered":"unRAID Docker: GUID und PGID erkl\u00e4rt"},"content":{"rendered":"<script type=\"text\/plain\" data-tcf=\"waiting-for-consent\" data-id=\"4797\" data-bid=\"2\" data-placement=\"4798\">PGRpdiBpZD0ibmV0Z3VpZGVhLTIzNDUzOTY4NTkiIGNsYXNzPSJuZXRndWlkZWEtYmVmb3JlLWNvbnRlbnQgbmV0Z3VpZGVhLWVudGl0eS1wbGFjZW1lbnQiPjxkaXYgY2xhc3M9Im5ldGd1aWRlYS1hZGxhYmVsIj5BZHZlcnRpc2VtZW50czwvZGl2PjxzY3JpcHQgYXN5bmMgc3JjPSIvL3BhZ2VhZDIuZ29vZ2xlc3luZGljYXRpb24uY29tL3BhZ2VhZC9qcy9hZHNieWdvb2dsZS5qcz9jbGllbnQ9Y2EtcHViLTYyNTg1NTYyNTcyNDU5OTgiIGNyb3Nzb3JpZ2luPSJhbm9ueW1vdXMiPjwvc2NyaXB0PjxpbnMgY2xhc3M9ImFkc2J5Z29vZ2xlIiBzdHlsZT0iZGlzcGxheTpibG9jazsiIGRhdGEtYWQtY2xpZW50PSJjYS1wdWItNjI1ODU1NjI1NzI0NTk5OCIgCmRhdGEtYWQtc2xvdD0iMzQ5NDExNTM0MiIgCmRhdGEtYWQtZm9ybWF0PSJhdXRvIj48L2lucz4KPHNjcmlwdD4gCihhZHNieWdvb2dsZSA9IHdpbmRvdy5hZHNieWdvb2dsZSB8fCBbXSkucHVzaCh7fSk7IAo8L3NjcmlwdD4KPC9kaXY+<\/script>\n<p class=\"wp-block-paragraph\"><strong>unRAID Docker<\/strong> und die beiden Kennungen <strong>GUID<\/strong> (genauer: PUID, die Benutzer-ID) und <strong>PGID<\/strong> (die Gruppen-ID) entscheiden dar\u00fcber, ob deine Container sauber auf Dateien im Host zugreifen oder st\u00e4ndig an &#8220;Permission denied&#8221; scheitern. Wer Anwendungen wie Plex, Nextcloud oder Jellyfin per Docker betreibt, kommt an diesen Werten nicht vorbei. In diesem Guide erkl\u00e4ren wir, was PUID und PGID bedeuten, warum sie in Docker so wichtig sind und wie du sie in unRAID Schritt f\u00fcr Schritt korrekt einrichtest, um Berechtigungsprobleme dauerhaft zu vermeiden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Was bedeuten GUID (PUID) und PGID?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Beide Werte stammen aus der Rechteverwaltung von Linux. Jeder Prozess l\u00e4uft dort unter einem bestimmten Benutzer und einer bestimmten Gruppe, und genau daran h\u00e4ngen die Zugriffsrechte auf Dateien und Verzeichnisse.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>PUID<\/strong> (oft umgangssprachlich &#8220;GUID&#8221; genannt) ist die <strong>User-ID (UID)<\/strong>. Sie legt fest, als welcher Benutzer ein Prozess bzw. Container ausgef\u00fchrt wird. Jeder Benutzer im System besitzt eine eindeutige UID.<\/li>\n\n\n\n<li><strong>PGID<\/strong> ist die <strong>Gruppen-ID (GID)<\/strong>. Sie steht f\u00fcr eine Gruppe von Benutzern und bestimmt, welche Rechte alle Mitglieder dieser Gruppe auf bestimmte Dateien haben.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">In einem Docker-Container gibst du PUID und PGID als Umgebungsvariablen an. Der Container \u00fcbernimmt damit die Identit\u00e4t eines Host-Benutzers und erh\u00e4lt exakt dessen Zugriffsrechte. Wenn dir die Docker-Grundlagen dazu noch fehlen, hilft dir vorab unser \u00dcberblick <a href=\"\/linux\/de\/was-ist-docker\/\">Was ist Docker?<\/a> weiter.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Warum sind PUID und PGID in Docker wichtig?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Anwendungen in Docker-Containern laufen isoliert vom Host. Sobald ein Container aber auf freigegebene Verzeichnisse zugreifen soll, m\u00fcssen die Benutzer- und Gruppenrechte zwischen Host und Container zusammenpassen. Genau das leisten PUID und PGID.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Berechtigungsprobleme vermeiden:<\/strong> Passt die ID nicht, kann der Container Dateien weder anlegen noch lesen oder \u00e4ndern &ndash; typischerweise endet das mit der Fehlermeldung &#8220;Permission denied&#8221;.<\/li>\n\n\n\n<li><strong>Konsistenz zwischen Host und Container:<\/strong> Nutzt der Container dieselben IDs wie unRAID, greifst du auf dieselben Dateien nahtlos zu &ndash; egal ob \u00fcber den Container oder direkt am Host.<\/li>\n\n\n\n<li><strong>Mehr Sicherheit:<\/strong> \u00dcber gezielte PUID\/PGID schr\u00e4nkst du ein, auf welche Daten ein Container \u00fcberhaupt zugreifen darf.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">PUID und PGID in unRAID herausfinden<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Auf einem <a href=\"\/linux\/de\/unraid-was-ist-das\/\">unRAID-Server<\/a> laufen Docker-Container h\u00e4ufig f\u00fcr Medien- und Cloud-Dienste, die auf gemeinsame Shares zugreifen. Bevor du einen Container einrichtest, brauchst du die richtigen IDs des Host-Benutzers. So gehst du vor:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Terminal \u00f6ffnen:<\/strong> \u00d6ffne auf deinem unRAID-Server das Web-Terminal (Icon oben rechts) oder verbinde dich per SSH.<\/li>\n\n\n\n<li><strong>ID des Benutzers auslesen:<\/strong> Mit dem Befehl <code>id [benutzername]<\/code> siehst du UID und GID. F\u00fcr den Standardbenutzer <code>nobody<\/code> sieht das so aus:<\/li>\n<\/ol>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"id nobody\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">id<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">nobody<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Die Ausgabe zeigt dir UID (also die PUID) und GID (die PGID) des Benutzers:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"uid=99(nobody) gid=100(users)\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">uid<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">99<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #B392F0\">nobody<\/span><span style=\"color: #E1E4E8\">) gid<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">100<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #B392F0\">users<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">In diesem Standardfall lautet die PUID also <strong>99<\/strong> und die PGID <strong>100<\/strong>. Diese beiden Werte nutzt du gleich im Docker-Container.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">PUID und PGID im Docker-Container setzen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Beim Anlegen eines neuen Containers tr\u00e4gst du die ermittelten Werte als Umgebungsvariablen ein &ndash; entweder im unRAID Docker-Template oder in einer Docker-Compose-Datei. F\u00fcr die verbreiteten LinuxServer-Images sieht das so aus:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"environment:\n  - PUID=99\n  - PGID=100\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">environment:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">  <\/span><span style=\"color: #B392F0\">-<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">PUID=<\/span><span style=\"color: #79B8FF\">99<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">  <\/span><span style=\"color: #B392F0\">-<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">PGID=<\/span><span style=\"color: #79B8FF\">100<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Damit l\u00e4uft der Container als Benutzer <code>nobody<\/code> mit der Gruppe <code>users<\/code> &ndash; genau die Kombination, die auf unRAID Zugriff auf die Shares hat. Berechtigungskonflikte mit Host-Verzeichnissen geh\u00f6ren so der Vergangenheit an.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Dateiberechtigungen auf dem Host pr\u00fcfen<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Die richtigen IDs allein reichen nicht &ndash; das Zielverzeichnis muss dem Benutzer auch tats\u00e4chlich die passenden Rechte einr\u00e4umen. Welche Rechte n\u00f6tig sind, h\u00e4ngt davon ab, was der Container tun soll:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Lesen (r):<\/strong> Ein reiner Medienserver, der nur Filme oder Musik streamt, braucht mindestens Lesezugriff auf die Verzeichnisse.<\/li>\n\n\n\n<li><strong>Schreiben (w):<\/strong> Dienste wie Nextcloud, die Dateien hochladen oder synchronisieren, ben\u00f6tigen zus\u00e4tzlich Schreibrechte (<code>rw<\/code>).<\/li>\n\n\n\n<li><strong>Ausf\u00fchren (x):<\/strong> Muss der Container in ein Verzeichnis wechseln oder Skripte starten, braucht der Benutzer auch das Ausf\u00fchrungsrecht auf den Ordner.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Ein passendes Rechteschema setzt du bei Bedarf mit <code>chmod<\/code>. F\u00fcr ein Medienverzeichnis, auf das der Benutzer lesend, schreibend und ausf\u00fchrend zugreifen soll, sieht das so aus:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"chmod -R 755 \/mnt\/user\/mediendaten\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">chmod<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">-R<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">755<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">\/mnt\/user\/mediendaten<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">Auf unRAID solltest du Berechtigungen f\u00fcr Shares im Zweifel aber \u00fcber das mitgelieferte Tool &#8220;New Permissions&#8221; (Tools &rarr; New Permissions) setzen, statt tief in einzelne Ordner einzugreifen. Wie sich die Rechtevergabe je nach Speicher unterscheidet, h\u00e4ngt auch vom gew\u00e4hlten Dateisystem ab &ndash; ein Vergleich dazu steht in unserem Guide <a href=\"\/linux\/de\/bestes-dateisystem-fuer-unraid\/\">Bestes Dateisystem f\u00fcr unRAID<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Praxisbeispiel: Plex auf unRAID mit PUID und PGID<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Angenommen, du betreibst einen <strong>Plex Media Server<\/strong> als Docker-Container und Plex soll auf deine Mediendateien zugreifen. Der komplette Ablauf in drei Schritten:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>PUID und PGID des Host-Benutzers ermitteln, der Zugriff auf die Medien hat &ndash; per <code>id nobody<\/code> erh\u00e4ltst du typischerweise <code>PUID=99<\/code> und <code>PGID=100<\/code>.<\/li>\n\n\n\n<li>Diese Werte im Docker-Template bzw. in der Compose-Datei als <code>PUID<\/code> und <code>PGID<\/code> eintragen (siehe Beispiel oben).<\/li>\n\n\n\n<li>Pr\u00fcfen, dass der Media-Share dem Benutzer <code>nobody<\/code>\/der Gruppe <code>users<\/code> geh\u00f6rt und die passenden Lese- bzw. Schreibrechte besitzt.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">Danach startet Plex als Benutzer <code>nobody<\/code> mit den Gruppenrechten <code>users<\/code> und kann deine Filme und Serien zuverl\u00e4ssig einlesen und streamen &ndash; ohne Zugriffsfehler.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">H\u00e4ufige Fehler und Tipps<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Falsche Variablennamen:<\/strong> Achte auf <code>PUID<\/code> und <code>PGID<\/code> (nicht UID\/GID). Viele Images werten ausschlie\u00dflich diese Namen aus.<\/li>\n\n\n\n<li><strong>Abweichende IDs:<\/strong> Nutzt du einen eigenen Benutzer statt <code>nobody<\/code>, pr\u00fcfe dessen ID immer per <code>id<\/code>. Nicht jedes System verwendet 99\/100.<\/li>\n\n\n\n<li><strong>Zu weite Rechte:<\/strong> Setze nicht pauschal <code>777<\/code>. Das \u00f6ffnet unn\u00f6tige Sicherheitsl\u00fccken &ndash; <code>755<\/code> oder <code>775<\/code> reichen meist aus.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">PUID und PGID sind der Schl\u00fcssel f\u00fcr reibungslose Docker-Container auf unRAID. Wenn du die Benutzer- und Gruppen-IDs des Hosts korrekt ausliest und im Container hinterlegst, greifen deine Anwendungen sauber auf die freigegebenen Verzeichnisse zu &ndash; ganz ohne &#8220;Permission denied&#8221;. Ein kurzer Blick mit <code>id<\/code>, die passenden Werte im Template und korrekt gesetzte Ordnerrechte gen\u00fcgen, damit Plex, Nextcloud, Jellyfin und Co. dauerhaft zuverl\u00e4ssig laufen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">H\u00e4ufige Fragen (FAQ)<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Was ist der Unterschied zwischen GUID, PUID und UID?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Technisch gibt es die UID (User-ID) und die GID (Gruppen-ID). In der unRAID- und Docker-Welt hei\u00dfen die zugeh\u00f6rigen Umgebungsvariablen PUID und PGID. &#8220;GUID&#8221; wird umgangssprachlich oft f\u00fcr die PUID verwendet, meint aber dasselbe: die Benutzer-ID, unter der der Container l\u00e4uft.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Welche PUID und PGID hat unRAID standardm\u00e4\u00dfig?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Der Standardbenutzer <code>nobody<\/code> hat auf unRAID die PUID <strong>99<\/strong>, die Gruppe <code>users<\/code> die PGID <strong>100<\/strong>. Pr\u00fcfe das im Zweifel mit <code>id nobody<\/code> direkt auf deinem Server.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Warum bekomme ich trotz PUID\/PGID &#8220;Permission denied&#8221;?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Meist stimmen zwar die IDs, aber die Ordnerrechte auf dem Host passen nicht. Pr\u00fcfe Eigent\u00fcmer und Rechte des Zielverzeichnisses und korrigiere sie \u00fcber &#8220;New Permissions&#8221; in unRAID oder gezielt per <code>chmod<\/code>\/<code>chown<\/code>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Muss ich PUID und PGID f\u00fcr jeden Container setzen?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Nur Images, die diese Variablen unterst\u00fctzen (etwa die LinuxServer-Images), werten sie aus. Bei solchen Containern solltest du sie immer setzen, damit Dateien mit den erwarteten Rechten angelegt werden. Andere Images ignorieren die Variablen einfach.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Kann ich einen eigenen Benutzer statt nobody verwenden?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Ja. Lege den Benutzer an, ermittle seine ID mit <code>id benutzername<\/code> und trage die entsprechenden Werte als PUID und PGID ein. Wichtig ist nur, dass dieser Benutzer die n\u00f6tigen Rechte auf die betroffenen Shares hat.<\/p>\n\n<script type=\"text\/plain\" data-tcf=\"waiting-for-consent\" data-id=\"4799\" data-bid=\"2\" data-placement=\"4800\">PGRpdiBpZD0ibmV0Z3VpZGVhLTEwMjU4OTk0MTMiIGNsYXNzPSJuZXRndWlkZWEtYWZ0ZXItY29udGVudCBuZXRndWlkZWEtZW50aXR5LXBsYWNlbWVudCI+PGRpdiBjbGFzcz0ibmV0Z3VpZGVhLWFkbGFiZWwiPkFkdmVydGlzZW1lbnRzPC9kaXY+PHNjcmlwdCBhc3luYyBzcmM9Ii8vcGFnZWFkMi5nb29nbGVzeW5kaWNhdGlvbi5jb20vcGFnZWFkL2pzL2Fkc2J5Z29vZ2xlLmpzP2NsaWVudD1jYS1wdWItNjI1ODU1NjI1NzI0NTk5OCIgY3Jvc3NvcmlnaW49ImFub255bW91cyI+PC9zY3JpcHQ+PGlucyBjbGFzcz0iYWRzYnlnb29nbGUiIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyIgZGF0YS1hZC1jbGllbnQ9ImNhLXB1Yi02MjU4NTU2MjU3MjQ1OTk4IiAKZGF0YS1hZC1zbG90PSI0NTU5Nzg1MDAyIiAKZGF0YS1hZC1mb3JtYXQ9ImF1dG8iPjwvaW5zPgo8c2NyaXB0PiAKKGFkc2J5Z29vZ2xlID0gd2luZG93LmFkc2J5Z29vZ2xlIHx8IFtdKS5wdXNoKHt9KTsgCjwvc2NyaXB0Pgo8L2Rpdj4=<\/script>","protected":false},"excerpt":{"rendered":"<p>PUID und PGID (GUID) sind auf unRAID zentral f\u00fcr Docker: So liest du die IDs aus, setzt sie im Container und vermeidest l\u00e4stige Permission-denied-Fehler.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[9],"tags":[],"class_list":["post-5121","post","type-post","status-publish","format-standard","hentry","category-linux"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Tobias Pries","author_link":"https:\/\/netguide.io\/linux\/author\/tobias-pries\/"},"uagb_comment_info":0,"uagb_excerpt":"PUID und PGID (GUID) sind auf unRAID zentral f\u00fcr Docker: So liest du die IDs aus, setzt sie im Container und vermeidest l\u00e4stige Permission-denied-Fehler.","brizy_media":[],"_links":{"self":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts\/5121","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/comments?post=5121"}],"version-history":[{"count":0,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/posts\/5121\/revisions"}],"wp:attachment":[{"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/media?parent=5121"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/categories?post=5121"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/netguide.io\/linux\/wp-json\/wp\/v2\/tags?post=5121"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}