PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : zugriffsrechte auf verzeichnisse



hugin grímnirson
13.09.06, 10:47
hallo,

hab folgendes problem:

ich hab hier eine ordnerstruktur mit massig unterordnern in mehreren ebenen, in denen überall files liegen.
ich möchte nun erreichen, dass die user zwar die files in den ordnern, aber nicht die ordner selber löschen können; sprich die verzeichnisstruktur soll unangetastet erhalten bleiben.

soweit ich es verstanden habe, ist das mit der traditionellen rechtevergabe nicht möglich, da das write-flag am verzeichnis ja nur die dateien _IM_ verzeichnis, nicht aber das verzeichnis selbst betrifft.


wer kann helfen?


tia

jacky0815
13.09.06, 11:57
Also hab eben mal einen Ordner angelegt als root mit den Rechten 775 und konnte es als User nicht löschen, da Schreibgeschützt.
Deine Information ist demnach falsch, würde zudem meiner Meinung nach auch keinen Sin ergeben.

kreol
13.09.06, 11:59
Es sollte reichen, die Verzeichnisse samt Unterverzeichnissen root zu übereignen und die Rechte 755 zu setzen. Dann können diese nur von root geändert werden, Normaluser können aber innerhalb des Verzeichnisses Dateien anlegen, löschen, bearbeiten. Also (ungetestet)
find /ausgangsverzeichnis -type d -exec chown root.root {} \;
find /ausgangsverzeichnis -type d -exec chmod 755 {} \;

Probier es aber erstmal an unverfänglicher Stelle aus...


Kreol

hugin grímnirson
13.09.06, 15:37
Also hab eben mal einen Ordner angelegt als root mit den Rechten 775 und konnte es als User nicht löschen, da Schreibgeschützt.
soweit schon klar und auch gut so.
nur gleichzeitig mit dem 775 nimmst du dem user auch das recht, den inhalt des verzeichnisses - sprich die files darinnen - zu löschen. und das ist in meinem fall ja dezitiert erwünscht.


Deine Information ist demnach falsch, würde zudem meiner Meinung nach auch keinen Sin ergeben.
dann sag das mal auch zb dem hier. (http://kris.koehntopp.de/artikel/unix/zugriffsrechte/) ;)



@kreol
ich hab mal ein test-verzeichnis angelegt, ein paar sachen reingeworfen und die rechte vergeben; die verzeichnisse an root, die dateien dem user. sieht dann so aus:


[root@vknecht test]# ls -alR /test/
/test/:
insgesamt 16
drwxr-xr-x 4 root root 4096 Sep 10 20:26 ./
drwxr-xr-x 20 root root 4096 Sep 10 20:25 ../
drwxr-xr-x 2 root root 4096 Sep 10 20:37 verz1/
drwxr-xr-x 2 root root 4096 Sep 10 20:36 verz2/

/test/verz1:
insgesamt 7528
drwxr-xr-x 2 root root 4096 Sep 10 20:37 ./
drwxr-xr-x 4 root root 4096 Sep 10 20:26 ../
-rw-r--r-- 1 luigi luigi 1406937 Jän 8 2006 DSC_5835.JPG
-rw-r--r-- 1 luigi luigi 1439840 Jän 8 2006 DSC_5836.JPG
-rw-r--r-- 1 luigi luigi 1588303 Jän 8 2006 DSC_5837.JPG
-rw-r--r-- 1 luigi luigi 1562736 Jän 8 2006 DSC_5839.JPG
-rw-r--r-- 1 luigi luigi 1673166 Jän 8 2006 DSC_5840.JPG

/test/verz2:
insgesamt 4916
drwxr-xr-x 2 root root 4096 Sep 10 20:36 ./
drwxr-xr-x 4 root root 4096 Sep 10 20:26 ../
-rw-r--r-- 1 luigi luigi 1307599 Jän 8 2006 DSC_5867.JPG
-rw-r--r-- 1 luigi luigi 1224748 Jän 8 2006 DSC_5868.JPG
-rw-r--r-- 1 luigi luigi 1245674 Jän 8 2006 DSC_5869.JPG
-rw-r--r-- 1 luigi luigi 1218767 Jän 8 2006 DSC_5870.JPG
[root@vknecht test]#


dann versuche ich als user einen file zu löschen:


[luigi@vknecht verz1]$ rm /test/verz1/DSC_5839.JPG
rm: reguläre Datei ,,/test/verz1/DSC_5839.JPG" entfernen? j
rm: Entfernen von ,,/test/verz1/DSC_5839.JPG" nicht möglich: Keine Berechtigung
[luigi@vknecht verz1]$


ergo: leider nein, funkt nicht.


bin aber weiterhin offen für weitere vorschläge.

jacky0815
13.09.06, 15:45
nur gleichzeitig mit dem 775 nimmst du dem user auch das recht, den inhalt des verzeichnisses - sprich die files darinnen - zu löschen. und das ist in meinem fall ja dezitiert erwünscht.
Hm.. stimmt natürlich. Andererseits schützt du damit doch theoretischerweise auch ein Unterverzeichnis eines Unterverzeichnisses :D
Sprich Struktur ist /test/test1/datei und du gibts test 775 und test1 777 solltest du jetzt Dateien in test1 löschen können, aber der Verzeichnis nicht.
Ist nur eine logische Überlegung von mir, ausprobiert hab ich es jetzt nicht.

kreol
13.09.06, 16:05
Siehe Linuxwiki (http://linuxwiki.de/DateiRechte):

t (das 'sticky bit', für Verzeichnisse)
Man darf nur seine eigenen Dateien löschen. Sinnvoll für /tmp-Verzeichnisse. Natürlich müssen auch die sonstigen Rechte stimmen, damit man überhaupt schreiben/lesen darf.
Geht es vllt. damit iVm Schreibrechten auf das Verzeichnis? Also auf die Verzeichnisse chown root.root und chmod 1777 anwenden. Du hast ja schon ein paar Testverzeichnisse... ;)


Kreol

hugin grímnirson
13.09.06, 16:23
Ist nur eine logische Überlegung von mir
... die grob betrachtet auch stimmen wird.

nur in deinem beispiel ist dann auch test1 löschbar.
zielsetzung ist es aber, als user keines der verzeichnisse, aber alle dateien löschen zu können.


@kreol
danke erst mal, werd ich mir anschaun, sobald ich von der tante doktor wieder dabin. muß schnell weg, bevor die zusperrt und mir eine tollwutimpfung reinhaun lassen.

suck
13.09.06, 16:37
Ungetestet (ist das, was Kreol beschrieb):

chown root.users $(find /startverzeichnis -type d)
chmod ug=rwx,o=rxt $(find /startverzeichnis -type d) Das klappt natürlich nur, wenn alle User in der Gruppe "users" sind.

hugin grímnirson
13.09.06, 18:05
@kreol und suck

bingo!
das war die lösung.

allerbesten dank!