Ändern Sie in der Befehlszeile für Mac OS X-Volumes die Option "Eigentümer dieses Volumes ignorieren"

17

(Diese Frage ist ein Ableger einer anderen Frage, die ich auf dieser Site gestellt habe.)

Neue Bilder ignorieren immer den Besitzer / die Gruppe

Wenn Sie ein neues Festplatten-Image mit dem Festplatten-Dienstprogramm erstellen, wird es automatisch bereitgestellt. Wenn Sie dann das Volume im Finder auswählen und Cmd-I (für das Infofenster) drücken, sehen Sie dies am unteren Rand des Fensters:

Bildbeschreibung hier eingeben

Dies bedeutet, dass Dateieigentümer und -gruppen auf diesem Volume ignoriert werden. Dies ist sehr praktisch, wenn externe Laufwerke von Computern mit unterschiedlichen Benutzerkonten gemeinsam genutzt werden. Für ein Sicherungsvolume ist dies keine gute Idee, da Sie die Eigentümer- / Gruppeninformationen für die gesicherten Dateien beibehalten möchten.

Ändern Sie dies im Finder

Um dies zu ändern, deaktivieren Sie einfach das Kontrollkästchen und es wird gespeichert, nachdem Sie das Bild ausgeworfen und erneut bereitgestellt haben.

Wechsel von der Kommandozeile (Terminal)

Anstatt das Image aus dem Finder einzuhängen, können Sie es auch über die Befehlszeile mit diesem Befehl einhängen (vorausgesetzt, das Image wird aufgerufen testimage.sparsebundle):

$ hdiutil attach testimage.sparsebundle/

Besitzer werden auf dem Volume jedoch ignoriert. Das Hinzufügen der -owners onOption entspricht (fast) dem Deaktivieren des Kontrollkästchens im obigen Bild:

$ hdiutil attach -owners on testimage.sparsebundle/

Nach dem Abmelden und erneuten Mounten des Volumes über Finder (oder über die Befehlszeile ohne die -owners onOption) wird das Kontrollkästchen erneut aktiviert.

Weiß jemand, wie man diese Änderung mit einem Befehlszeilenaufruf dauerhaft macht?

mgd
quelle

Antworten:

17

Sie verwenden diskutildafür. Siehe diskutil(1)unter enableOwnership und disableOwnership . Beachten Sie, dass diese Einstellung für eine bestimmte Betriebssysteminstallation spezifisch ist, da sie in gespeichert ist /var/db/volinfo.database. Das heißt, wenn Sie das Festplatten-Image auf einen neuen Computer kopieren, bleibt die Einstellung nicht erhalten, sie bleibt jedoch auch bei Neustarts, Bereitstellungen, Umount-Vorgängen usw. auf einem einzelnen Computer erhalten.

Verwenden Sie diskutil, um den Bezeichner zu finden, und ändern Sie dann die Option:

$ diskutil list
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:                            Disk Image             *41.0 MB    disk2
$ sudo diskutil enableOwnership disk2
File system user/group ownership enabled
Bahamat
quelle
2
Dies ist nicht ganz korrekt. In diskutil werden Sie darauf hingewiesen, dass Sie eine Festplatte mit einem Einhängepunkt angeben müssen. Dies bedeutet, dass Sie auf das Segment für das Volume verweisen müssen, das Sie umbenennen möchten. Die korrekte Syntax (unter der Annahme von Slice 2 von Disk 2) lautet: sudo diskutil enableOwnership / dev / disk2s2 Wenn Sie sudo diskutil list ausführen, können Sie alle Disk-Informationen anzeigen und die richtige Disk & Slice für Ihr Volume finden .
Ich habe festgestellt, dass ich diskutil enableOwnershipzwischen Ladevorgängen erneut aufrufen muss , da ich sonst keine Binärdateien und Skripts auf dem geladenen Volume ausführen kann.
Psoft
5

Ich fand heraus, dass beide Antworten dazu beitrugen, das Eigentum auf eine Art und Weise zu ermöglichen, an die man sich erinnert:

sudo diskutil enableOwnership <diskname>s<slicenum>

Und:

vsdbutil -a /Volume/<volname>

Das Gegenteil ist jedoch nicht der Fall, zumindest unter OS X 10.11.3:

sudo diskutil disableOwnership <diskname>s<slicenum>

Und:

vsdbutil -d /Volume/<volname>

Beide ändern vorübergehend den Status, aber der Besitz wird beim nächsten Aktivieren des Volumes wieder aktiviert. Dies scheint ein Fehler im Betriebssystem zu sein. Zum Glück habe ich eine Lösung gefunden, die funktioniert. Werfen Sie alle externen Datenträger aus, für die Sie den Besitz deaktivieren möchten. Dann löschen Sie die entsprechende Datenbank mit:

sudo rm /var/db/volinfo.database
Russell Owen
quelle
Kannst du ein Beispiel geben, ich habe nicht bekommen, was ich anstelle von s <slicenum> schreiben soll?
Sun
2

Verwenden Sie vsdbutildiese Option, um einen Pfad anstelle eines physischen Laufwerks festzulegen:

vsdbutil -a /Volume/Diskname

Obwohl die manSeite angibt, dass sie veraltet ist, verweist die manSeite für diskutilimmer noch darauf und der Mechanismus scheint auf dem Volume zu basieren, UUIDsnicht auf den IDs der physischen Festplatte / des Slice.

Chris F. Carroll
quelle