Hallo, ich habe ein Verständnisproblem für Berechtigungen unter Linux. angenommen ich habe einmal testfolder1/f1.txt Ich habe angefangen eine Gruppe (familie) zu erstellen, welche momentan einen user hat (Johannes) Jetzt möchte ich gerne für dieser Gruppe Berechtigungen (nur lesen) anlegen. chown johannes:familie testfolder1/f1.txt chmod 440 testfolder1/f1.txt heißt: Johannes darf lesen, komplette Gruppe familie darf lesen, alle anderen dürfen nichts. Wenn ich jetzt also noch einen benutzer anlege und diesen in der Gruppe familie unterbringe, darf dieser Benutzer ebenfalls die Datei lesen. Aber wer darf die Datei jetzt noch löschen? nur ich mit sudo? Oder gibt es noch andere wege? Wie kann ich es machen, dass ein Benutzer aus familie mehr rechte (lesen und schreiben) bekommt? Jetzt möchte ich gerne noch eine zweite Gruppe anlegen. familie2 Wie kann ich denn jetzt Einstellen, dass familie2 auch zugriffsrechte bekommt? Ich müsste ja eigentlich erst mit chown den Besitzer wechseln? Was passiert dann mit den Berechtigungen für familie?
Johannes schrieb: > Hallo, > ich habe ein Verständnisproblem für Berechtigungen unter Linux. > > angenommen ich habe einmal > testfolder1/f1.txt > > Ich habe angefangen eine Gruppe (familie) zu erstellen, welche momentan > einen user hat (Johannes) > Jetzt möchte ich gerne für dieser Gruppe Berechtigungen (nur lesen) > anlegen. > > chown johannes:familie testfolder1/f1.txt > chmod 440 testfolder1/f1.txt > > heißt: Johannes darf lesen, komplette Gruppe familie darf lesen, alle > anderen dürfen nichts. > Wenn ich jetzt also noch einen benutzer anlege und diesen in der Gruppe > familie unterbringe, darf dieser Benutzer ebenfalls die Datei lesen. > > Aber wer darf die Datei jetzt noch löschen? nur ich mit sudo? Oder gibt > es noch andere wege? > Wie kann ich es machen, dass ein Benutzer aus familie mehr rechte (lesen > und schreiben) bekommt? > > Jetzt möchte ich gerne noch eine zweite Gruppe anlegen. familie2 > Wie kann ich denn jetzt Einstellen, dass familie2 auch zugriffsrechte > bekommt? > Ich müsste ja eigentlich erst mit chown den Besitzer wechseln? Was > passiert dann mit den Berechtigungen für familie? Datei neu anlegen oder Löschen braucht Schreibrechte auf das Verzeichnis. Also chown johannes:familie testfolder1/ chmod ug+rwx testfolder1/ Will man das feiner steuern braucht man ACLs (Access Control List). Siehe z.B. https://wiki.ubuntuusers.de/ACL/
Nikolaus S. schrieb: > Datei neu anlegen oder Löschen braucht Schreibrechte auf das > Verzeichnis. Also > > chown johannes:familie testfolder1/ > chmod ug+rwx testfolder1/ Wenn Benutzer2 auch schreibrechte haben soll (Benutzer3 aber z.B. nicht), muss ich das mit ACLs machen? Oder ich ändere den Benutzer zu Benutzer2? was wird dann mit den Rechten von johannes?
Johannes schrieb: > Wenn Benutzer2 auch schreibrechte haben soll (Benutzer3 > aber z.B. nicht), muss ich das mit ACLs machen? > Oder ich ändere den Benutzer zu Benutzer2? was wird dann > mit den Rechten von johannes? Ganz allgemein: Du musst für jede Teilmenge der Nutzer, die in genau dieser Zusammenstellung für wenigstens eine Datei Privilegien genießen dürfen, eine eigene Gruppe definieren. Es ist nicht möglich, Gruppen von Gruppen zu bilden oder zu einer Gruppe fallweise noch einzelne Nutzer dazuzunehmen oder auszuschließen. Die einzige Ausnahme ist nur der Eigentümer; der muss nicht Mitglied der privilegierten Gruppe sein, weil er ja sowieso die Eigentümerrechte hat. Wenn es die Nutzer "Mutter", "Vater", "Lisa", "Hannes" und "Oma" gibt, dann müssten also 2^5-1 = 31 Gruppen eingerichtet werden, damit alle Kombinationen möglich sind (die leere Gruppe ist nicht erforderlich).
Wie wäre es mit "chmod 640" für die Datei? Der Besitzer kann dann lesen und schreiben, die Gruppe nur lesen. Wie bereits gesagt entspricht Datei anlegen/löschen dem Schreibrecht auf dem Ordner. Allerdings ist "ug+rwX" genau das, was der der TO nicht will. Richtig wäre für den Order "u=rwx,g=rx,o-rwx" oder anders "chmod 750". ACLs braucht man hierfür noch lange nicht.
Johannes schrieb: > Wenn Benutzer2 auch schreibrechte haben soll (Benutzer3 aber z.B. > nicht), muss ich das mit ACLs machen? > Oder ich ändere den Benutzer zu Benutzer2? was wird dann mit den Rechten > von johannes? Vielleicht hilft Dir das zum Verständnis: Im klassischen Linux-Dateiberechtigungs-System hat jede Datei genau einen zugeordneten "Eigentümer", einen Benutzer. Weiterhin hat jede Datei genau eine zugeordnete "Gruppe", eine Benutzergruppe. Dieses vergleichsweise einfache/minimalistische Berechtigungssystem ist natürlich etwas eingeschränkt. Weil man eben bspw. nicht sagen kann: Sowohl die Mitglieder von "Benutzergruppe2" als auch die Mitglieder von "Benutzergruppe3" als auch "Benutzer3" und Benutzer4" (die in keiner der beiden Benutzergruppen sind), haben diesen und jeden Zugriff. Das ist gerade für Windows-Umsteiger ungewohnt, weil die das von Windows halt anders kennen, wo die Dateisystem-Berechtigungen viel komplexer vergeben werden können. Linux ermöglicht mit einer irgendwann eingeführten Erweiterung namens ACL (Access Control Lists) aber ebenfalls solche komplexen Berechtigungen. Hauptunterschied ist, dass eine Datei klassischerweise nur genau eine Benutzergruppe etc. haben kann, bei ACL hingegen eine beliebig lange LISTE von Berechtigungen. Obwohl wahrscheinlich jedes Desktop-Linux und die meisten Linux-Server ACL von Haus aus unterstützen, werden ACLs in der Praxis trotzdem nur äusserst selten verwendet. Das minimalistische klassische Berechtigungssystem ist in den meisten Fällen doch ausreichend und leichter zu handhaben; ich würde vermuten dass ACL in der Praxis fast ausschliesslich da zum Einsatz kommen, wo ein Linux-Server als Dateiserver für andere PCs im gleichen Netzwerk verwendet wird.
Nikolaus S. schrieb: > Datei neu anlegen oder Löschen braucht Schreibrechte auf das > Verzeichnis. Korrekt. Die Berechtigungen auf die Datei bestimmen Lesen/Schreiben, die Berechtigungen auf das Verzeichnis bestimmen Anlegen/Löschen. Dabei sei hier noch eine kleine Spezialität erwähnt, die auch unter Linux in /tmp angewandt wird: Hier können User beliebige Dateien anlegen, aber nur ihre eigenen Dateien auch wieder löschen. Erreicht wird das durch das "Sticky-Bit".
1 | chmod +t Verzeichnis |
Ich halte dieses Feature gerade für Ordner, die mehreren Usern zur Verfügung stehen sollen, für äußerst nützlich. Zusätzlich müssen natürlich die Regeln für Anlegen/Löschen, die durch das Write-Bit (user, group, other) eingestellt werden, eingehalten werden. P.S. Beachte: Das Sticky-Bit für (ausführbare) Dateien hat eine gänzlich andere Bedeutung als für Verzeichnisse.
:
Bearbeitet durch Moderator
Joachim S. schrieb: > Im klassischen Linux-Dateiberechtigungs-System hat jede Datei genau > einen zugeordneten "Eigentümer", einen Benutzer. Weiterhin hat jede > Datei genau eine zugeordnete "Gruppe", eine Benutzergruppe. Was es auch noch gibt, ist der "Rest der Welt" - bzw. alle anderen Benutzer. Man kann also beispielsweise einstellen, dass alle Benutzer eine Datei lesen dürfen, aber nur die Gruppe auch schreiben darf. Nur mehrere begrenzte Gruppen mit unterschiedlichen Rechten gehen eben ohne ACL nicht.
:
Bearbeitet durch User
Egon D. schrieb: > Es ist nicht möglich, Gruppen von Gruppen zu > bilden oder zu einer Gruppe fallweise noch einzelne Nutzer > dazuzunehmen oder auszuschließen. Nunja... wenn man seine User in einem LDAP verwaltet, geht das schon, aber jemand, der nach den Basics von Benutzerrechten fragt, dürfte vermutlich noch eine Weile brauchen, um so etwas einrichten zu können...
Johannes schrieb: > Hallo, > ich habe ein Verständnisproblem für Berechtigungen unter Linux. > > angenommen ich habe einmal > testfolder1/f1.txt > > Ich habe angefangen eine Gruppe (familie) zu erstellen, welche momentan > einen user hat (Johannes) > Jetzt möchte ich gerne für dieser Gruppe Berechtigungen (nur lesen) > anlegen. > > chown johannes:familie testfolder1/f1.txt > chmod 440 testfolder1/f1.txt > > heißt: Johannes darf lesen, komplette Gruppe familie darf lesen, alle > anderen dürfen nichts. > Wenn ich jetzt also noch einen benutzer anlege und diesen in der Gruppe > familie unterbringe, darf dieser Benutzer ebenfalls die Datei lesen. > > Aber wer darf die Datei jetzt noch löschen? nur ich mit sudo? Oder gibt > es noch andere wege? > Wie kann ich es machen, dass ein Benutzer aus familie mehr rechte (lesen > und schreiben) bekommt? > > Jetzt möchte ich gerne noch eine zweite Gruppe anlegen. familie2 > Wie kann ich denn jetzt Einstellen, dass familie2 auch zugriffsrechte > bekommt? > Ich müsste ja eigentlich erst mit chown den Besitzer wechseln? Was > passiert dann mit den Berechtigungen für familie? Wir können jetzt hunderte Postings mit Millionen von Worten schreiben, aber jede Beschreibung wird immer abstrakt bleiben. Zudem gibt es bereits einen Haufen an guten Texte zu diesem Thema; eine Suche nach "linux permissions tutorial" und/oder "linux dateirechte erklärt" liefert viele, viele tausend lesenswerte Ergebnisse. Ansonsten empfehle ich Dir wärmstens, einfach mal ein bisschen herum zu spielen und es auszuprobieren. Das muß ja nicht auf Deiner "richtigen" Installation passieren, sondern kann auch in einer VM oder einem Docker-Container passieren, wie Du magst. Sofern Docker installiert ist, landest Du mit dem Befehl "docker run -it --rm ubuntu" direkt auf der Rootshell eines Containers mit einem Ubuntu-Linux, darin kannst Du spielen soviel Du willst, und wenn Du diesen Container wieder verläßt, wird er (aber nicht das Image!) automatisch wieder gelöscht (--rm). Ansonsten kann man mit ACLs weitere Freigaben einstellen, oder mit Techniken wie AppArmot, SE-Linux oder RSBAC weitere Einschränkungen. Ich empfehle Dir aber, daß Du erst einmal die Basics erlernen und beherrschen solltest, bevor Du Dich an das Erforschen weiterer Möglichkeiten begibst. Nebenbei bemerkt: wenn Du bei der Erforschung der Basics mit den einfachen Rechten (read, write, execute) für Dateibesitzer, Gruppen, und Andere durch bist, empfehle ich Dir wärmstens, Dich auch mit den weiteren Möglichkeiten vertraut zu machen, also Setuid-, Setgid- und Sticky-Bits auf Dateien und insbesondere auch auf Verzeichnissen! Viel Erfolg!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.