chmod -R g+s dir Problem
Hi Folks, sorry, dass ich euch nerve, aber es ist für mich wichtig: Es existieren div. Verzeichnisse mit Unterverzeichnissen/Dateien etc. Aus vorherigen Postings habt ihr ja vielleicht schon mitbekommen, dass ich mich mit dem SGID etc. rumschlage. Das habe ich nun auch schon begriffen. Mein Problem: Ich möchte nun die existierenden Verzeichnisse "umstellen" auf g+s. Und auch die bereits existierenden Unterverzeichnisse. Mache ich das so, wie im Betreff beschrieben, dann klappt das wunderbar für die Unterverzeichnisse. Aber die darin enthaltenen Dateien bekommen jetzt eine Rechtekennung etwa so: rw-r-Sr-- Was hat das (große) "S" zu bedeuten??? Kann ich das überhaupt _so_ rekursiv umstellen? Danke Timothy -- "Es gibt zwei Dinge im Leben, die du nicht zurücknehmen kannst: Denn Pfeil den du verschossen und das Wort, das du gesprochen" - altes indianisches Sprichwort
On Thursday November 18 2004 09:25, Timothy Kesten wrote:
Mein Problem: Ich möchte nun die existierenden Verzeichnisse "umstellen" auf g+s. Und auch die bereits existierenden Unterverzeichnisse. Mache ich das so, wie im Betreff beschrieben, dann klappt das wunderbar für die Unterverzeichnisse. Aber die darin enthaltenen Dateien bekommen jetzt eine Rechtekennung etwa so:
rw-r-Sr--
Was hat das (große) "S" zu bedeuten???
"S" bedeuted dass das setuid oder setgid bit ("s") gesetzt ist, aber nicht das execute ("x") bit.
Kann ich das überhaupt _so_ rekursiv umstellen?
Wenn ich Dich richtig verstehe, willst Du nur das "dir" Verzeichnis und alle Unterverzeichnisse aendern, aber nicht die darin enthaltenen Dateien. Versuche es damit: find dir -type d -print0 | xargs -0 chmod g+s Falls Du das "s" bit von allen Nicht-Verzeichnissen entfernen willst: find dir ! -type d -print0 | xargs -0 chmod g-s HTH Michael
Kann ich das überhaupt _so_ rekursiv umstellen?
Wenn ich Dich richtig verstehe, willst Du nur das "dir" Verzeichnis und alle Unterverzeichnisse aendern, aber nicht die darin enthaltenen Dateien.
Genau
Versuche es damit:
find dir -type d -print0 | xargs -0 chmod g+s
Falls Du das "s" bit von allen Nicht-Verzeichnissen entfernen willst:
find dir ! -type d -print0 | xargs -0 chmod g-s
HTH Michael
Ich denke schon. Danke für den Tipp. werde ich heute Abend mal ausprobieren. Jetzt geht es erstmal nach Regensburg (von Berlin aus -> brrr- bei dem Wetter) ;-) Bye Timothy -- "Es gibt zwei Dinge im Leben, die du nicht zurücknehmen kannst: Denn Pfeil den du verschossen und das Wort, das du gesprochen" - altes indianisches Sprichwort
Hallo, Am Thu, 18 Nov 2004, Timothy Kesten schrieb:
Mein Problem: Ich möchte nun die existierenden Verzeichnisse "umstellen" auf g+s. Und auch die bereits existierenden Unterverzeichnisse. Mache ich das so, wie im Betreff beschrieben, dann klappt das wunderbar für die Unterverzeichnisse. Aber die darin enthaltenen Dateien bekommen jetzt eine Rechtekennung etwa so:
rw-r-Sr--
Was hat das (große) "S" zu bedeuten???
man chmod Eben das SGID-Bit ohne Execute-bit.
Kann ich das überhaupt _so_ rekursiv umstellen?
Nein. Du solltest Dateien und Verzeichnisse gesondert behandeln. find PFAD -type d -print0 | xargs -0 chmod g+s find PFAD -type f -print0 | xargs -0 chmod g-s -dnh -- Fertility is hereditary. If your parents didn't have any children, neither will you.
Am Donnerstag, 18. November 2004 18:25 schrieb Timothy Kesten:
Hi Folks,
sorry, dass ich euch nerve, aber es ist für mich wichtig:
Es existieren div. Verzeichnisse mit Unterverzeichnissen/Dateien etc. Aus vorherigen Postings habt ihr ja vielleicht schon mitbekommen, dass ich mich mit dem SGID etc. rumschlage. Das habe ich nun auch schon begriffen. Mein Problem: Ich möchte nun die existierenden Verzeichnisse "umstellen" auf g+s. Und auch die bereits existierenden Unterverzeichnisse. Mache ich das so, wie im Betreff beschrieben, dann klappt das wunderbar für die Unterverzeichnisse. Aber die darin enthaltenen Dateien bekommen jetzt eine Rechtekennung etwa so:
rw-r-Sr--
Ja, hast du ja auch so gesetzt. Du hast das Bit für das _S_etzen der Gruppenmitgleidschaft bei Ausführen gesetzt, das SG-ID-Bit - und das zeigt dir das große S an. (BTW: man chmod, man ls) [1] Wird die Datei ausgeführt, dann läuft der Prozess (und alle evtl. aufgerufenen Unterprozesse) mit den Rechten der Gruppe, die Eigentümer dieser Datei ist. Normaler Weise läuft so ein Prozess ja mit den Rechten desjenigen, der ihn aufruft. (geht analog auch mit User-Rechten) Achtung: Das ist zwar teilweise nötig, aber auch nicht ganz ungefährlich. Dadurch kann ein User z.B. ein Programm mit root-Rechten ausführen. Das klassiche Anwendungsbeispiel: das Programm passwd. Eigentlich hat der User keine Schreibrechte auf die Dateien /etc/passwd und /etc/shadow. Demzufolge könnte er nicht mal selbst sein Passwort ändern. Da aber das Programm passwd durch den User ausführbar ist und über das User-ID-Bit mit root-Rechten läuft, kann über die Hintertür auch ein User in die /etc/shadow schreiben. -- Gruß MaxX Hinweis 1: PMs an diese Adresse werden automatisch vernichtet. Hinweis 2: Bitte unbedingt beachten: http://www.suse-etikette.de.vu
participants (4)
-
David Haller
-
Matthias Houdek
-
Michael Siefritz
-
Timothy Kesten