chmod

Deadshadow

Mitglied
hm, ich hab grad ein riesen Problem. Und zwar geht es um Rechte. Rechte kann man ja Gruppen, Usern und Dateien/Verzeichnisse vergeben. Nun habe ich ein riesen durcheinander. Das einzige was ich weiss ist, dass man mit
Code:
chmod
die Rechte einer Datei / eines Verzeichnisses vergibt.
Kann mir jemand in deutsch für normal-dumme die Zusammenhänge der verschiedenen Rechte und vielleicht den Syntax erklären? Wär echt toll.

thx
 
Mit chmod kannst du Verzeichnissen oder Dateien 3 Arten von Rechten vergeben, wobei du wiederrum 3 Arten von Usern unterscheidest:

- Eigentümer der Datei/des Verzeichnisses: erste Stelle des CHMODS
- Gruppe, der die Datei gehört: zweite Stelle
- Restliche User: dritte Stelle

Der CHMOD ist also eine dreistellige Zahl. Um den CHMOD zu bilden muss für jede Userart (also für jede Stelle) die "Nummer" des Rechts addiert werden:

1 => Ausführen / Execute (x)
2 => Schreiben / Write (w)
4 => Lesen / Read (r)


Ein CHMOD von 764 würde also besagen:

Eigentümer darf Ausführen/Schreiben/Lesen, Gruppe der die Datei gehört darf Schreiben/Lesen, andere User dürfen nur Lesen.


Syntax des Befehls:

chmod 777 filename

Eigentümer von Dateien kannst du übrigens mit chown festlegen.


Was ich gerade noch gefunden habe:
http://www.tutorials.de/tutorials176413.html

:rolleyes:
 
Zuletzt bearbeitet:
danke

aber mein Problem ist noch nicht gelöst. Auf allen Seiten ist nur bezeichnet was für Rechte es gibt und so.
Ich verstehe aber noch nicht, wie die Rechte, die ich einem User gebe mit den Rechten, die ich einer Datei gebe, zusammenhängen.
Also z.B. wenn die Datei nur leserecht und der User alle drei Rechte hat. Kann er die Datei dann ausführen? Hängt dies überhaupt zusammen? :(


thx
 
Also irgendwie haste da was nicht ganz richtig verstanden (offenbar).

Den Dateien werden die Rechte zugewiesen, nicht dem User. Jede Datei gehört aber einem User und zu einer Gruppe.

Jede Datei hat grundlegend jeweils 3 Rechte für verschiedene Benutzerkategorien (den Besitzer, die Gruppe der die Datei angehört und für alle anderen).

Also, um auf dein Beispiel zurückzukommen, wenn du sagst die Datei hätte nur Leserecht, dann mußt du auch sagen für welche Kategorien dieses Recht besteht und ob die Datei dem User gehört oder nicht bzw. ob der User in der Gruppe ist der die Datei angehört oder eben nicht.

Der User kann die Datei nur ausführen, wenn das eXecutable Bit der Datei in der Kategorie der er angehört gesetzt ist.

z.B. wenn die Datei dem Benutzer "klaus" gehört und zu der Gruppe "biker" und folgende Rechte hat:

r-- r-x -w-

Dann kann Klaus die Datei selber nicht ausführen, weil er als Besitzer der Datei nur Leserecht hat, alle User in der Gruppe "biker" können die Datei ausführen da für die Gruppe das executable bit gesetzt ist und alle anderen Benutzer (also außer klaus und diejenigen der Gruppe "biker") können die Datei ändern, aber nicht ausführen und lesen.

Am besten ist vielleicht wenn du es mal selber ausprobierst was passiert wenn die Bits gesetzt sind oder nicht.
 
Morgen,

danke deepthroat, genau nach dieser Erklärung habe ich gesucht. So ähnliches ist mir heute morgen auf dem Klo klar geworden :D

ich denke, ich habe das Prinzip verstanden. Sonst melde ich mich wieder.

schönen Tag noch
 
Hoi,

der Beitrag hier ist zwar mittlerweile einige Wochen alt, aber eine Frage hätte ich da auch noch.
Das UNIX-Rechtesystem an sich ist klar und verstanden, aber was mich wundert, wieso wird zum Beispiel ein Recht das Alle Anderen (other) haben, nicht einfach auf Benutzer und Gruppen vererbt. Eigentlich müsste man doch davon ausgehen, wenn alle Anderen etwas können, dann die zugehörige Gruppe und Besitzer erst recht.
Ok, ich gebe zu, da es alle Anderen heisst, erklärt sich das von selbst.

Aber, was passiert, wenn ich Besitzer einer Datei und auch in der zugehörigen Gruppe wäre, als Besitzer gar keine Rechte, als Gruppe aber alle hätte (u.B. 077), erhalte ich, trotz der Gruppenzugehörigkeit dennoch keiner Rechte, weil ich Owner bin?
Ist das an sich nicht ein wenig unlogisch?
 
[Edit - Korrektur, weil falsch verstanden ;) ]
077, also den owner aller Rechte berauben und ihn dann in eine Gruppe packen die den ganzen Zugriff hat, DAS ist pervers. Das würde keiner machen. Deshalb ist die Frage zwar nicht ganz unbegründet, aber auch nicht gerade sehr warscheinlich
 
Zuletzt bearbeitet:
Ich kam da eigentlich auch nur drauf, weil ich derzeit an einem Objekt-Orientiertem System arbeite, bei dem jedes Objekt einen Owner und einer Group hat und es eine Recht-Vergabe ähnlich UNIX hat. Da fragt man sich auf einmal, ob es so was wie Vererbung von Gruppen auf Benutzer gibt usw. :)

Habe mich jetzt aber dazu entschieden, es genauso wie bei UNIX zu machen und wenn sich wer den AST selbst absägt, sein Pech ;)
 
Zurück