Fremde Dateien/Verzeichnisse in eigenem Verzeichnis löschen
Hi, wenn ich der Gruppe eines mir gehörenden Verzeichnisses Schreibrechte gewähre, wie kann ich dann das vom andern erstellte Verzeichnis mit Dateien drin löschen? Bei einer einzelnen Datei klappt das mittels cp, mv und rm (_das_ ist schon bescheuert, finde ich). Aber wie in unten stehendem Fall mit dem Verzeichnis "feldputzer"? re:~> cd /local/incoming re:/local/incoming> ll -ad . drwxrwxr-x 9 re users 4096 Nov 28 20:11 . re:/local/incoming> ll -a feldputzer/ total 5432 drwxr-xr-x 2 michl users 4096 Nov 25 22:59 . drwxrwxr-x 9 re users 4096 Nov 28 20:11 .. -rw-r--r-- 1 michl users 678624 Nov 25 22:59 S3000001.JPG -rw-r--r-- 1 michl users 598720 Nov 25 22:59 S3000002.JPG -rw-r--r-- 1 michl users 639904 Nov 25 22:59 S3000003.JPG -rw-r--r-- 1 michl users 526406 Nov 25 22:59 S3000004.JPG -rw-r--r-- 1 michl users 531906 Nov 25 22:59 S3000005.JPG -rw-r--r-- 1 michl users 534311 Nov 25 22:59 S3000006.JPG -rw-r--r-- 1 michl users 650358 Nov 25 22:59 S3000008.JPG -rw-r--r-- 1 michl users 437932 Nov 25 22:59 S3000009.JPG -rw-r--r-- 1 michl users 423757 Nov 25 22:59 S3000010.JPG -rw-r--r-- 1 michl users 241388 Nov 25 22:59 S3000011.JPG -rw-r--r-- 1 michl users 226373 Nov 25 22:59 S3000014.JPG René
Hallo Rene, Am Freitag, 28. November 2003 20:18 schrieb René Matthäi:
Du kannst sie nur löschen wenn der benutzer der sie anlegt, sie mit "schreibrechten für die Gruppe" versehen hat. Das ist ein deinem Beispiel wie zu sehen nicht der Fall. Ergo kann ein anderer Benutzer aus der gleichen Gruppe sie nicht löschen. Gruss Frank
Hi, Frank Babies schrieb:
Aber es handelt sich doch um MEIN Verzeichnis :-( Wenn es sich um Dateien, nicht um Verzeichnisse, handelt, kann ich die Datei kopieren, verschieben auf die ursprüngliche Datei und die dann löschen. Es geht also doch. Aber: Handelt es sich um ein Verzeichnis ohne Schreibrechte für die Gruppe, steh ich dumm da. Das ist doch irgendwie inkonsequent. Es muss doch irgendwie gehen, Dateien in seinem Homeverzeichnis anlegen zu lassen, die man dann löschen kann, wenn man mag! Geht das, wenn "others" Schreibrechte haben, kann ich das dann löschen? (Gleich mal ausprobieren) Ré
On Fri, Nov 28, 2003 at 08:18:03PM +0100, René Matthäi wrote:
Nur wenn du das "sgid"-bit am gesharten Verzeichnis setzt, ist es sinnvoll moeglich. Dann wuerden alle Verzeichnisse, die darin erstellt werden der gleichen Gruppe zugeordnet und ausserdem ebenfalls das sgid-Bit gesetzt.
Da musst du den "michl" bitte, das Verzeichnis auf g+w zu setzen. Oder aber, du kannst das bit selbst setzen, da du ja Rechte an "incoming" hast. -- Have fun, Peter
Hi, Peter Wiersig schrieb:
Stimmt, das SGID-Bit sollte ich setzen. Ändert aber nichts daran, dass die Gruppen-Rechte für das erstellte Verzeichnis schreiben erlauben müssen. Egal ob users oder irgendeine andere Gruppe :-(
Nein, Letzteres geht eben nicht :-( Bin ja nicht Eigentümer. Ich finde, für Dateien und Verzeichnisse in meinem Verzeichnis sollte man das Eigentum übernehmen dürfen. Für Dateien geht es ja auch - über Umweg cp und mv. René
René Matthäi schrieb:
Mir deucht, es liegt ein Verstaendnisproblem vor! Loeschen von Dateien ist eine Aktion am Verzeichnis, in dem sich diese Dateien befinden, und keine Aktion an den Dateien selbst. Deswegen brauchst Du am _Verzeichnis_ entsprechende Rechte, um die Dateien zu loeschen, nicht an den Dateien selbst. Gleiches gilt fuer Unterverzeichnisse in einem Verzeichnis - um dieses Unterver- zeichnis zu loeschen, brauche ich entsprechende Rechte am Ober- verzeichnis, nicht an dem zu loeschenden Verzeichnis selbst. Beispiele: Root legt in meinem $HOME ein Verzeichnis an: root$> cd /home/thomas/ root$> mkdir testverzeichnis root$> ls -dl testverzeichnis/ drwxr-xr-x 2 root root 4096 2003-11-29 20:31 testverzeichnis/ thomas$> rmdir testverzeichnis/ thomas$> ls -ld testverzeichnis ls: testverzeichnis: Datei oder Verzeichnis nicht gefunden Obwohl es root gehoert und ich keine Schreibrechte am Verzeichnis habe (habe als User thomas weder UID=0 noch gehoere ich der Gruppe root an), kann ich das Verzeichnis ohne Probleme loeschen! Selbst wenn Root alle Rechte an dem Verzeichnis entzieht, kann ich es immer noch loeschen, denn ich habe die entsprechenden Rechte am uebergeordneten Verzeichnis, da das mein $HOME ist: root$> ls -ld testverzeichnis/ d--------- 2 root root 4096 2003-11-29 20:31 testverzeichnis/ thomas$> rmdir testverzeichnis/ thomas$> ls -ld testverzeichnis ls: testverzeichnis: Datei oder Verzeichnis nicht gefunden Bei all diesen Aktionen spielen die Rechte am testverzeichnis keine Rolle! Anders sieht es aus, wenn Root noch eine Datei im Verzeichnis testverzeichnis anlegt. Dann habe ich als User thomas ein Problem! Loeschen ist eine Aktion am Verzeichnis, d.h. da ich keine entsprechenden Rechte am Verzeichnis testverzeichnis habe, kann ich die darin enthaltene Datei von Root auch nicht loeschen. Damit kann ich aber auch das testverzeichnis selbst (obwohl ich theoretisch die Rechte dafuer haette) nicht mehr loeschen, weil das Verzeichnis nicht leer ist. Genau das ist eben bei Dir passiert. Sobald Dir der User michl am Verzeichnis feldputzer Schreibrechte einraeumt, kannst Du alles entfernen: Du kannst dann zuerst die Dateien in feldputzer loeschen (auch wenn sie nicht Dir gehoeren), denn Du hast dann entsprechende Rechte am Verzeichnis. Ist das Verzeichnis feldputzer dann leer, kannst Du dieses Verzeichnis loeschen, auch wenn es Dir nicht gehoert, denn Du hast entspre- chende Rechte an Deinem $HOME. Mit "rm -rf feldputzer" liesse sich das alles auf einmal erledigen, sobald Du eben Schreibrechte am Verzeichnis feldputzer hast. Mit cp und mv etc. wie Du behauptest hat das IMHO alles nichts zu tun. CU, Th.
Peter Wiersig schrieb:
Nur in den Faellen, die ich aufgezeigt habe. Wenn Du eine Datei verschieben willst, brauchst Du auch die entsprechenden Rechte am Verzeichnis. Lege als Root in Deinem $HOME ein Verzeichnis "testdir" an und erstelle darin als Root per touch eine Datei beliebigen Namens. Du kannst als normaler User diese Datei nicht verschieben und nicht loeschen, solange Du keine Rechte am Ver- zeichnis hast, das Root angelegt hat. Probiere es aus! Wenn Root die Datei direkt in Deinem $HOME anlegt, kannst Du sie natuerlich verschieben und anschliessend zurueckkopieren und sie gehoert auf einmal Dir. Nicht verwunderlich. Du haettest sie auch loeschen koennen. Gruesse, Thomson
Hi, unterm Strich bleibt der Wunsch, über Dateien bzw. Verzeichnisse in "meinem" Ordner frei verfügen zu können... Zum Beispiel einfach, indem die Besitzübernahme innerhalb "meiner" Verzeichnisse erlaubt ist (nicht die Übergabe). Komisch. Aber Linux (*nix?) hat so seine Eigenheiten (deswegen gibt's ja auch inzwischen FSs mit ACLs). René
René Matthäi schrieb:
Naja, stelle Dir vor, Du erlaubst Deinem Nachbarn, sein Auto in Deine Garage zu stellen. Er macht das und freut sich. Dann aber moechtest Du Dein eigenes Auto wieder reinstellen, also ist Dir nun das Auto des Nachbarn im Weg. Du denkst nun, weil es ja in Deiner Garage steht, uebernimmst Du jetzt einfach den Besitz des Autos vom Nachbarn und es gehoert dann Dir... Nun ja, wohl kaum, oder? Du wirst den Nachbarn bitten muessen, sein Auto wieder rauszufahren. Oder aber Du gehst mit Gewalt vor, und laesst es von der Polizei abschleppen. Der Nachbar koennte Dir das Auto vielleicht auch schenken, aber das ist wohl eher unwahrschein- lich. Aehnlich ist es eben auch bei den Dateien. Wenn Du jemandem ein Schreibrecht in Deinem $HOME einraeumst (was ich persoenlich als recht fahrlaessig bewerten wuerde), dann darfst Du Dich hinterher auch nicht wundern, wenn jemand das Recht nutzt und dort Dateien "parkt" oder Unterverzeichnisse anlegt, die dann nicht mehr Dir gehoeren. Auch hier hilft in gewissen Faellen (siehe andere Mail) eben nur, den anderen darum zu bitten, die Dateien zu loeschen bzw. der Gewaltvorgang, die Dateien als Root "abzuschleppen"... Schoenen Sonntag, Thomson
Am Sonntag, 30. November 2003 11:15 schrieb Thomas Hertweck: [...]
Nein, das ist nicht korrekt. Zum Löschen von Dateien in einem Ordner brauchst Du lediglich Schreibrechte in diesem Ordner. Es ist völlig egal, wem der Ordner gehört oder wem die Datei gehört oder welche Rechte diese Datei hat (außer das Sticky-Bit für den Ordner ist gesetzt): <schnipp> jan@roland:~/tmp> mkdir nicht_meins jan@roland:~/tmp> su Password: roland:/home/jan/tmp # chown root nicht_meins roland:/home/jan/tmp # chmod 775 nicht_meins/ roland:/home/jan/tmp # cd nicht_meins/ roland:/home/jan/tmp/nicht_meins # touch root_seine roland:/home/jan/tmp # exit jan@roland:~/tmp> cd nicht_meins jan@roland:~/tmp/nicht_meins> ls -l insgesamt 0 -rw-r--r-- 1 root root 0 2003-11-30 14:02 root_seine jan@roland:~/tmp/nicht_meins> rm root_seine rm: reguläre leere Datei (schreibgeschützt) »root_seine« entfernen? y jan@roland:~/tmp/nicht_meins> ls -l insgesamt 0 <schnapp> Die Idee, sein $HOME mit Schreibrechten für andere zu versehen, ist also sogar noch schlimmer: Andere können dann nämlich auch Deine eigenen Dateien löschen. Jan
Hi, Thomas Hertweck schrieb:
Na ja, der Vergleich ist nicht sonderlich gut. Wenn mir jemand Dateien in mein Verzeichnis stellt, kann er sie auch dorthin kopieren. Kommt halt drauf an, was als Usus angesehen wird. Wenn von vornherein klar wäre, dass Daten gelöscht werden könnten (wie das bei einfachen Dateien ja auch praktisch der Fall ist), könnte man die Daten dorthin kopieren oder man wäre sich zumindest der "Gefahr" gewahr. Nun hat es sich scheint's so eingebürgert, muss man mit leben. Sinn des Ganzen wäre z. B., ein persönliches Upload-Verzeichnis zu haben, aus dem man die Daten dann auch herausholen und einsortieren könnte, was natürlich löschen involviert. Wie löst man so etwas? Root bitten, eine neue Gruppe anzulegen, SGID-Bit auf dem Verzeichnis setzen, Others Schreibrecht einräumen...? Blöde Lösung. Oder - wenn das als normaler Benuter geht? - ACLs verwenden. Ré
participants (5)
-
Frank Babies
-
Jan.Trippler@t-online.de
-
Peter Wiersig
-
René Matthäi
-
Thomas Hertweck