2009-08-19 17 views
3

Gibt es in OS X die Möglichkeit, die Berechtigungen eines Ordners auf einen anderen zu klonen? Nur um klar zu sein, ich möchte nicht den gesamten Ordner, nur die Berechtigungen kopieren und dann auf einen anderen Ordner setzen. Ich denke, diese Art der Sache auf Linux/UNIX mit den setfacl/getfacl Befehle erreicht werden könnte, aber ich bin nicht sicher, wie man dies X. mit OS tunKlonen von Berechtigungen eines Ordners in einen anderen Ordner

Dank

+0

Versuchen Sie zu lernen, wie man das allgemein oder als Teil einer Programmieraufgabe macht? Wenn es sich um eine allgemeine Frage handelt, gehört diese zu SuperUser. – Telemachus

+0

Shell-Skripte sind Programme - auf StackOverflow ist das kein Problem. –

+0

@ Jonathan: Die Frage ist so vage, dass es schwer zu sagen ist, ob er das mit einem Shell-Skript machen will oder ob er nur einen Shell-Befehl haben möchte. – Telemachus

Antwort

6

Getestet auf Mac OS X 10.5.7, in bash:

chown $(stat -f%u:%g "$srcdir") "$dstdir" # Copy owner and group 
chmod $(stat -f%Mp%Lp "$srcdir") "$dstdir" # Copy the mode bits 
(ls -lde "$srcdir" | tail +2 | sed 's/^ [0-9]*: //'; echo) | chmod -E "$dstdir" # Copy the ACL 

Hinweise: Diese Operationen (bes. Veränderungen der Eigentumsverhältnisse) sind wahrscheinlich Root-Zugriff verlangen; streuen Sie mit sudo für beste Ergebnisse. Dieser seltsame Befehl echo in der letzten Zeile ist auch da, um einen Fehler zu verhindern, wenn srcdir keine ACL-Einträge angehängt hat (chmod -E kann mit leeren Zeilen umgehen, aber keine vollständig leere Eingabe).

1

Ich nehme an, Sie gegoogelt und fand bei least:

Und das web page scheint auch einige wichtige inf zu decken Ormation (wie fsaclctl).

+0

'fsaclctl' dient zum Ein- und Ausschalten von acls in einem Dateisystem, anstatt den acl-Status eines bestimmten Ordners zu steuern. In 10.4, glaube ich, war die acl-Unterstützung zwar verfügbar, aber standardmäßig deaktiviert, so dass dieser Befehl nützlich war. In 10.5 sind natürlich die Akls standardmäßig aktiviert, so dass es immer noch nützlich ist, um die verdammten Dinge auszuschalten. – Telemachus

+0

Ich verwende chmod die ganze Zeit, das Problem ist, dass ich einen automatisierten Prozess brauche, um die Berechtigungen von einem Quellverzeichnis in ein Zielverzeichnis zu klonen. Chmod ist einfach manuell zu verwenden, aber für einen automatisierten Prozess kann es ein bisschen schwierig sein. – indragie

+0

@PCWiz: Sie können eine Reihe von 'chmod'-Befehlen (die Sie perfekt getestet haben) einfach in ein Bash-Skript einfügen und nach Bedarf ausführen. – Telemachus

0

Was ich getan habe, war das Erstellen einer Objective-C-Methode (ich plante, diese in einer Cocoa-App sowieso zu verwenden), die die Berechtigungen einer Datei mit einem Perl-Skript findet und dann chmod/chown verwendet, um diese Berechtigungen anzuwenden .

Verwandte Themen