Page 1 of 1

Gelöst: "chown -R" - Change Owner Rekursiv wirkungslos, warum?

Posted: 21 Feb 2016 13:48
by Digi-Quick
WTF!

Ich versuche gerade die Rechtestruktur auf meinen NAS gerade zu ziehen.
Dazu will ich das der User "Digi" Eigentümer aller Verzeichnisse wird.
Der Eigentümer ist zum Teil "root", nämlich bei den Verzeichnissen die ich via ssh und Midnight Commander angelegt habe.


Trotz eines

Code: Select all

chown -R Digi:wheel /mnt/Pool-01/DS-01/
auf der Verzeichnisstruktur habe ich einen Menge Directories die weiterhin "root" als Owner haben - der Befehl lief Stunden für nix. (Was hat derBefehl in diesen Stunden gemacht?)

Aus der manpage von FreeBSD
-R Change the user ID and/or the group ID of the file hierarchies
rooted in the files, instead of just the files themselves.
Beware of unintentionally matching the ``..'' hard link to the
parent directory when using wildcards like ``.*''.
Grosses Fragezeichen....
Google spuckt noch aus, daß bei FreeBSD der Rekursive Modus nur die Verzeichnisrechte ändert im ggs. zu Linux - soweit ich das verstanden habe


Muß der Befehl eventuell

Code: Select all

chown -R Digi:wheel /mnt/Pool-01/DS-01/*.*
oder sogar

Code: Select all

chown -R Digi:wheel /mnt/Pool-01/DS-01/*
lauten?

Ich kann nicht die Rechte von 1000en Verzeichnissen manuell kontrollieren und korrigieren!!

Aus dem Ubuntu Wiki:
Der Benutzer andreas und die gleichnamige Gruppe werden als Besitzer für das Verzeichnis /media/VERZEICHNIS mit allen Unterordnern und Dateien festgelegt:

sudo chown -cR andreas:andreas /media/VERZEICHNIS
sudo kann ich weglassen, da ich als root via ssh angemeldet bin, den Schalter -c gibt es laut FreeBSD Manpage nicht

Re: "chown -R" - Change Owner Rekursiv wirkungslos, warum?

Posted: 21 Feb 2016 17:50
by kreuzberger
Mahnleit Digi-Quick,

eine Variante wäre mal den MAS einen Bildschirm und eine Tastatur zu gönnen und es mal damit auch der Konsole zu versuchen. Ob man per ssh denn wirklich root ist kann ich in deinem fall nicht wissen. das MUSS aber für diesen zweck zwingend sein, sonst geht die Rechtsänderung natürlich nicht.

ich hab mir selbst dazu mal folgende Notizen gemacht:
______________________________________________
Dateirechte einstellen

Alle Ordner und Dateien eines Laufwerks auf 777 (alle User dürfen lesen, schreiben, ausführen) setzen:

$ chmod -R 777 /mnt/Fotos01

oder

$ chmod -R 777 ./*

Rechte nur bei Dateien (f=files) setzen:

find ./* -type f -exec chmod 644 {} \;

Rechte nur bei Verzeichnissen (d=directory) setzen:

find ./* -type d -exec chmod 755 {} \;

Achtung: Man kann diesen Befehl nicht erfolgreich als normaler USER ausführen, da der normale USER nicht ausreichende Rechte hat, alle rechte zu setzen. Deshalb den Befehl über das Web-Interface oder direkt auf der Konsolentastatur ausführen. Dann wird der Befehl als der Haupt-Admin ausgeführt, der alle notwendigen rechte hat.

Bei Datei- oder Verzeichnisnamen, die Leerzeichen, Anführungszeichen oder Backslashs enthalten, kann es zu Fehlern kommen. Um dies zu vermeiden ist zusätzlich die Verwendung von xargs zu empfehlen:

$ find ./* -type f -print0 | xargs -0 chmod 777

Der Parameter -print0 bei bewirkt, dass find jedes gefundene Element mit einem Nullbyte abschließt. Dieses Nullbyte wird von xargs durch den Parameter -0 verwendet um die Eingaben zu trennen und richtig an chmod weiterzugeben.

____________________________________________
Kreuzberger

Re: "chown -R" - Change Owner Rekursiv wirkungslos, warum?

Posted: 21 Feb 2016 21:02
by Digi-Quick
chmod 777 ist längst gemacht....
Siehe viewtopic.php?f=29&t=10472
Die Dateien und Verzeichnisse haben auch 777 aber halt unterschiedliche Owner.
wie du in obigen Thread sehen kannst, habe ich schlichtweg Probleme mit der Rechtevererbung wenn User "Digi" von Windows aus eine Date in einen Ordner kopiert der dem User root gehört (weil ich den Ordner mit dem Midnight Commander in der ssh-shell als User root angelegt habe.)
Ich kann mich zwar via ssh als User Digi anmelden, kann dann aber wiederum keinen MC starten.
viewtopic.php?f=29&t=10477

zum Thema root:
Als was bin ich denn deiner Meinung nach angemeldet, wenn ich via ssh (putty) als root angemeldet bin?

Es geht um CHANGE USER und nicht um CHANGE MODE.

Und falls du fragen solltest, warum MC auf der Console....
einige Dateioperationen (Dateimanagement) geht direkt auf der Maschine schneller als via Netzwerk. Zukünftig werde ich das wohl eher über eine Windows-VM als User Digi machen - aber dafür muss ich erstmal die Rechtestruktur in den Griff bekommen.

Das Group Wheel in Allen Verzeichnissen alle Rechte hat ist offenbar vollkommen irrelevant, anders kann ich mir das Verhalten beim Besten Willen nicht erklärern - User Digi ist Mitglied in Wheel.

Deine Anregung bezüglich der Leerzeichen führt mich zu folgendem Befehl

Code: Select all

find /mnt/Pool-01/DS-01/NAS-Backup \( -type d -print0 | xargs -0 -exec chown Digi:wheel {} + \) -o \( -type f -print| xargs -0 -exec chown Digi:wheel {} + \)
Ich habe den jetzt noch nicht ausgeführt

Im Umkehrschluss heisst das aber auch, daß dieser Befehl dann nicht 100%ig geklappt hat (wegen der teiweise vorkommenden Leerzeichen im Datei-/Verzeichnisnamen)

Code: Select all

find /mnt/Pool-01/DS-01 \( -type d -exec chmod 777 {} + \) -o \( -type f -exec chmod 777 {} + \) 

Re: "chown -R" - Change Owner Rekursiv wirkungslos, warum?

Posted: 21 Feb 2016 21:10
by kreuzberger
sorry dass ich helfen wollte.
vergiss es.

Re: "chown -R" - Change Owner Rekursiv wirkungslos, warum?

Posted: 21 Feb 2016 21:26
by Digi-Quick
kreuzberger wrote:sorry dass ich helfen wollte.
vergiss es.
Leider nicht wirklich zielführend, und am Thema vorbei. Trotzdem Danke!

Achja, falls da noch Leute auf die Idee kommen zu fragen, warum ich den Midnight Commander nutze und nicht die hochheilige Console:
Ich kann nicht 500 Anschläge/Minute Tippen und mache durchaus Schreibfehler in bemerkenswerter Grössenordnung, die ich teilweise erst beim 3. oder 4. mal lesen sehe.

Re: "chown -R" - Change Owner Rekursiv wirkungslos, warum?

Posted: 21 Feb 2016 23:21
by Digi-Quick
Hmpf....
Dat lässt mich ja nicht los :-)

Code: Select all

find "/mnt/Pool-01/DS-01/003 - Foto & Video/004 - Einzel-Videoprojekte Privat (fertig)" \( -type d -print0 | xargs -0 chown Digi:wheel {} + \) -o \(  -type f -print0 | xargs -0 chown Digi:wheel {} + \);
ergab

Code: Select all

find: (: missing closing ')'
Grübel: Wo fehlt da die schliessende Klammer: 2 öffnende Klammern MINUS 2 schliessende Klammern = 0


dann halt ohne Verkettung

Code: Select all

find "/mnt/Pool-01/DS-01/NAS-Backup/003 - Foto & Video/004 - Einzel-Videoprojekte Privat (fertig)" -type d -print0 | xargs -0 chown Digi:wheel
hat's richtig gemacht

und offenbar brauch man hier nichtmal "-type" angeben, dann erschlägt er offenbar alles wie gewünscht

Code: Select all

find "/mnt/Pool-01/DS-01/NAS-Backup/003 - Foto & Video/004 - Einzel-Videoprojekte Privat (fertig)" -print0 | xargs -0 chown Digi:wheel
Sollte ich mit meiner Feststellung nun doch wieder gänzlich falsch liegen, bitte Info

Und nochmal Danke an kreuzberger für den gedanklichen Schubser in Richtung "-print0 | xargs -0"



EDIT:
Es hat jetzt offenbar alles geklappt, wie gewünscht - ich lasse ab sofort die Finger vom Midnight Commander und der Console. Dateiverwaltung nur noch via Windows!! (via LAN oder als VM). Zumal ich ja den MC nicht als User Digi in der Console starten kann.
viewtopic.php?f=29&t=10477