Zugriffsrechte - Was für ein Chaos...

Umsteiger5000

Granny Smith
Registriert
13.07.08
Beiträge
17
Folgendes Problem::-[:-[:-[

- An meinem MacMini ist eine ziemlich grosse (4 TB) externe Platte (1 Partition, GUID, Mac OS X Journaled) angeschlossen, auf der sich recht viele Dateien in recht vielen Ordnern befinden. Die Dateien wurden von unterschiedlichen Benutzern angelegt und stammen tlw. noch aus Tiger-Zeiten.

- Nun gibt es in unserem Heimnetzwerk zwei User - nennen wir sie mal A und B - und eine Gruppe - X genannt - die aus den beiden Usern besteht. Beide User haben Administratorrechte.

- Nun hätte ich gerne, dass der User A Eigentümer sämtlicher Dateien und Ordner auf dieser Platte ist und der User B Schreib- und Lesezugriff erhält.

- Naiv wie ich bin, hatte ich mir das folgendermassen gedacht: ich gehe auf die oberste Ordnerebene, wähle die "Informationen" zum Ordner, stelle dort A als Eigentümer ein, gebe der Gruppe X Lese- und Schreibrechte und klicke dann auf "Auf alle Unterobjekte anwenden".

- Tatsächlich passiert danach irgendwas; der Rechner rödelt ein paar Stunden kräftig vor sich hin...

- Wenn ich schlussendlich aber in die Zugriffsrechte diverser Dateien schaue, dann habe ich dort Kraut und Rüben vor mir. Mal hat die Gruppe Schreib- und Leserechte, mal nur eines von beiden, mal nix. Ausserdem tauchen diverse User ("staff", "unknown", "everybody") auf, die tlw. sogar Lese- und Schreibzugriff haben, denen ich aber garantiert nie irgendwelche Zugriffsrechte verpasst habe.

- Danach habe ich das o.g. Spielchen noch mal als Root-User versucht. Führt aber auch nicht weiter. Nur dass ich jetzt plötzlich die Zugriffsrechte für einige Dateien überhaupt nicht mehr ändern kann ("Fehler -50").

- Habe alternativ auch mal TinkerTool System probiert, aber wenn ich dort die Zugriffsrechte einstelle und sichern will, wird mir gesagt, dass bestimmte Änderungen (welche genau bleibt unklar) nicht durchgeführt werden können. Dies ebenfalls dann, wenn ich als Root reingehe...

- Letzendlich habe ich dann auch noch Apple angerufen (der Mini hat einen AppleCare-Vertrag). Und als ich dann bis zum Third-Level-Support durchgedrungen war, hat man mir gesagt, dass das Thema "Zugriffsrechte" ja fürchterlich kompliziert sei. Aber ich solle doch mal googeln...

Kernfrage ist und bleibt: wie kann ich die ganz am Anfang genannten Rechte (Schreib- und Lesezugriff für alle User in der Gruppe, A als Eigentümer) für alle Dateien auf der Platte vergeben? Oder muss ich hierfür drei Jahre UNIX studieren und dann zwei Monate lang mit dem Terminal rumfummeln...?

(Immer wieder faszinierend, was gutes Marketing so alles kann - Stichwort: Mac OS X ist benutzerfreundlicher als Windows. Unter NT geht das alles viel einfacher...)
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Am einfachsten im Terminal:
Code:
sudo -s
(* Dein Passwort eingeben. Es erscheint nichts. Auch kein Sternchen *)
(* Wenn keine Fehlermeldung gekommen ist weiter *)
cd /Pfad/zu/dem/Verzeichnis/um/das/es/geht
chown -R userA:gruppeX .
(* alles dem User A und der Gruppe X übereignen *)
find . -type f -print0 | xargs -0 chmod ug+rw,o-rwx
(*Dateien:  u+g bekommen Lese- und Schreibrechte, other bekommt nix *)
find . -type d -print0 | xargs -0 chmod 770
(* Verziechnisse u+g Lese-, Schreib- und Ausführrechte, other bekommt nix *)
Das sollte es dann sein.
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
muss ich hierfür drei Jahre UNIX studieren und dann zwei Monate lang mit dem Terminal rumfummeln...?
Kommt ganz darauf an wie schnell du tippst:
Code:
sudo chown -Rh [I]User_A[/I]:[I]Gruppe_X[/I] "/Volumes/[I]mein Volume[/I]";
sudo chmod -R ug=rwX,o=u-w "/Volumes/[I]mein Volume[/I]";
Wenn das nicht funktioniert, hast du wohl eine "NAS" Platte gekauft - eine "Network Disk".
Für die Verwaltung der Rechte auf solchen Platten ist nicht dein Rechner, sondern die Betriebssoftware der Platte selbst verantwortlich. Und jetzt rate mal, zu welcher Kategorie von Hardware der typische Computerhändler heutzutage die meisten Beschwerdebriefe bekommt...
Oder noch schlimmer... steht auf der Platte vorne "LaCie" drauf? Aua.

Und:
Damit die Verwaltung auf DIREKT angeschlossenen externen HDs (USB, FireWire) überhaupt irgendwie funktionieren kann, solltest du sie zunächst erst mal einschalten.
Im Infodialog des Finders zum Volume gibt es bei dieser Art von Medien eine Checkbox, die vorher wegzuklicken ist:
"Eigentümer auf diesem Volume ignorieren" ist wohl relativ selbsterklärend.

Unter NT geht das alles viel einfacher...)
Wirklich? Möchtest du diese beiden Zeilen oben wirklich mit dem vergleichen, was du dazu auf einer Windows XP Kommandozeile eingeben müsstest? Ehrlich? Soll ich?
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Dann sag mir bitte, was, warum verkehrt war.
Erst ends:
Das Wörtchen "einfachst" ist die Steigerung von "einfach", nicht von "aufwendig".
Was bitte soll die Verwendung mehrerer "rödel-aktiver" find-Kommandos? Zumal...

Zweit ends:
Warum ignorierst du alles ausser regulären Files und Ordnern?
Gibts bei dir weder Symlinks noch andere Feinheiten?

Dritt ends:
Um "anderen" Benutzern alles zu verwehren, ist es ziemlich stillos, rekursiv mit dem Panzer durch die kalte Küche zu toben. Das Entfernen aller Rechte auf höchster Ebene genügt vollkommen für diesen Zweck. Ist um einiges pflegeleichter.

Viert ends:
"xargs" ist ja ganz nett, aber die find-Direktive "-exec mach_was {} \;" wäre etwa 2547,8 mal schneller und schlanker. (Ungefähr)
Bei geschätzt einer Million +/- 10^7 Treffern knallt das schon irgendwie rein.
(Und selbst das ist noch sterbenslagsam.)

Fünft ends:
Nur die Rechte auf der betreffenden HD hätten geändert werden sollen. Für ein "find -x" wäre immer genug Zeit. Aus Höflichkeit dem Fehlerteufel gegenüber, wenn du schon meinst in einer interaktiven rootshell deine Gymnastik machen zu müssen.
(Was hiermit auch erwähnt wäre. Das spart mir die Verwendung von "Sex tends". :) )
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Zweit ends:
Warum ignorierst du alles ausser regulären Files und Ordnern?
Gibts bei dir weder Symlinks noch andere Feinheiten?
Selten.

Dritt ends:
Um "anderen" Benutzern alles zu verwehren, ist es ziemlich stillos, rekursiv mit dem Panzer durch die kalte Küche zu toben. Das Entfernen aller Rechte auf höchster Ebene genügt vollkommen für diesen Zweck. Ist um einiges pflegeleichter.
Ansichtssache. Ich gehe lieber auf Nummer Sicher.

Viert ends:
"xargs" ist ja ganz nett, aber die find-Direktive "-exec mach_was {} \;" wäre etwa 2547,8 mal schneller und schlanker. (Ungefähr)
Nun… Genau DAS habe ich anders gelernt. http://www.sunmanagers.org/pipermail/summaries/2005-March/006255.html Aber gut… Mein Unix Wissen ist ja auch schon leicht angestaubt (Anno 1986) und die -X zu chmod z.B. kannte ich noch nicht.

Nachtrag: Ein Test auf meiner Multimediaplatte ergab einen eindeutigen Zeitvorteil für xargs:
Code:
time find . -type f -print0 | xargs -0 ls  >/dev/null

real    0m24.842s
user    0m0.861s
sys     0m7.502s

time find . -type f -exec ls {} \; >/dev/null

real    8m34.750s
user    0m46.045s
sys     3m45.135s
 
Zuletzt bearbeitet:

WDZaphod

Prinzenapfel
Registriert
10.11.06
Beiträge
546
Gerade mal als "sehr gut" bewertet, das Thema.
Bei solchen "Shell Battles" kann man immer was lernen :)

Dazu: Der Weg von Rastafari (chmod -R ...) ist ohne Frage der "amtlichere" und übersichtlichere. Das "-exec" bei find war mir neu, von daher finde ich den Thread wirklich gut! Die XARGS-Sache ist schon etwas DurchdieBrustInsAuge, aber bekanntlich führen ja viele (mehr oder weniger steinige) Wege nach Rom.
 

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
Die xargs Lösung wird im Zweifel immer schneller sein, da "chmod" für MAXARGS Files *einmal* aufgerufen wird, bei find/-exec wird chmod für *jede* Datei aufgerufen.
 
  • Like
Reaktionen: MacMark

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
Die xargs Lösung wird im Zweifel immer schneller sein, da "chmod" für MAXARGS Files *einmal* aufgerufen wird, bei find/-exec wird chmod für *jede* Datei aufgerufen.
Autsch, erwischt.
Ich hatte zuerst tapfer ein gewohntes "-exec {} +" getippt, aber dann doch wieder entfernt: Zu spät daran erinnert, dass das noch lange nicht jeder verfügbar hat. Und dann total verbummelt, den Text dazu entsprechend zu korrigieren. Oh grosser Nyabinghi sag mir, wo ist nur mein Schreikissen abgeblieben?

<klugscheiss>
Das ginge nämlich tatsächlich schokoladiger als mit dem exakt genauso vorgehenden xargs, weil die (schnarch) Pipe und der xargs-Aufruf ersatzlos wegfallen.
</klugscheiss>
:)
 
  • Like
Reaktionen: MacMark

FrankR

Gascoynes Scharlachroter
Registriert
15.11.07
Beiträge
1.537
Naja, ob die Pipe und der xargs Aufruf, jetzt hier soviel Performance kosten sei mal dahingestellt.

Aber: Wieder was gelernt, "+" bei exec kannte ich noch nicht... Gewohnheitstier halt, man sollte sich die Manpages vielleicht doch jedes Jahr mal wieder durchlesen ... ;)
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Gerade mal als "sehr gut" bewertet, das Thema.
Bei solchen "Shell Battles" kann man immer was lernen
Ganz genau! Ich habe ja jetzt schon mindestens 2 Dinge (exec + und -X) gelernt.

Darum bin ich dem Rastalöckchen auch nicht ob seines pampigen Antwortstils böse ;) Ich bin selbst oft genug pampig und werr austeilt muß auch einstecken können.

Aber xargs und "durchs Auge in die Brust oder den Fuß" (oder so): Pipe xargs war vor exec + in jedem Fall schneller und so abwegig sind diese Pipegeschichten unter Unix ja mal gleich gar nicht.
 

WDZaphod

Prinzenapfel
Registriert
10.11.06
Beiträge
546
Ich mag es einfach nicht, wenn Leute arrogant rüberkommen, die es sich eigentlich nicht leisten können. Das sind leider 90% der Leute. Rastafari gehört allerdings wie oft bewiesen nicht dazu, von daher geht das mit etwas Dickhäutigkeit durchaus in Ordnung :-D
 

Umsteiger5000

Granny Smith
Registriert
13.07.08
Beiträge
17
...nur fraglich, ob ich unter Windows überhaupt in die Kommandozeile müsste...
 

Umsteiger5000

Granny Smith
Registriert
13.07.08
Beiträge
17
Es funktioniert. Faszinierend.

Jetzt wüsste ich nur noch gerne genauer, was ich da eigentlich gemacht habe. Wo finde ich denn eine gute, verständliche Beschreibung der verwendeten Kommandos?

Bin kein Computer-Laie sondern SAP-Consultant aber UNIX-Laie...
 

Rastafari

deaktivierter Benutzer
Registriert
10.03.05
Beiträge
18.150
...nur fraglich, ob ich unter Windows überhaupt in die Kommandozeile müsste...
Hättest du zuerst die Verwendung der Eigentümer aktiviert und sie erst danach versucht zu ändern, hätte das wohl schön geklappt.

Es gibt aber auch (kostenlose) Hilfssoftware, die solche "Massenarbeiten" eleganter beherrscht als das Findertool: Give BatChmod a try. Wenn dir die typischen, seitenweise durchzuklickenden und völlig undurchschaubaren Windows-Dialoge dagegen tatsächlich einfacher vorkommen, empfehle ich einen Arztbesuch.

(Mal abgesehen davon, dass man sich mindestens die teure Pro-Version von XP zulegen soll, um überhaupt in den Genuss einer Rechteverwaltung zu kommen...Supi!)
 

Skeeve

Pomme d'or
Registriert
26.10.05
Beiträge
3.120
Jetzt wüsste ich nur noch gerne genauer, was ich da eigentlich gemacht habe. Wo finde ich denn eine gute, verständliche Beschreibung der verwendeten Kommandos?
Im Terminal:
Code:
man [I]kommandoname[/I]
Ach Moment! Du schriebst gut und verständlich… Nunja… Da gehen die Meinungen auseinander ;)

Versuch's halt ersmal mit den man-Pages und kauf (oder leih) Dir bei Gelegenheit ein Unix Buch.

Oder teste mal dieses Open Book: Wie werde ich UNIX-Guru? von Arnold Willemer
Einführung in UNIX, Linux und Co.
 

Umsteiger5000

Granny Smith
Registriert
13.07.08
Beiträge
17
...tja, das Buch ist leider nicht beschaffbar, weder neu noch gebraucht, nicht einmal antiquarisch über abebooks. Trotzdem danke!

Habe mir auf jeden Fall mal BatChmod runtergeladen, prima Tipp!


Grüsse,

Michael