Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

mac:repair_permissions [2013/03/14 10:16]
wikisysop
mac:repair_permissions [2013/11/11 15:37] (aktuell)
wikisysop
Zeile 6: Zeile 6:
 **Zusammenfassung:​** Bei der automatischen Reparatur der Zugriffsrechte werden nur Dateien berücksichtigt,​ welche als PKG installiert wurden und in der Liste der Standard Pakete aufgeführt werden, welche durch das Kommando >><​fc #​800000>/​usr/​libexec/​repair_packages --list-standard-pkgs</​fc><<​ aufgerufen werden kann! **Zusammenfassung:​** Bei der automatischen Reparatur der Zugriffsrechte werden nur Dateien berücksichtigt,​ welche als PKG installiert wurden und in der Liste der Standard Pakete aufgeführt werden, welche durch das Kommando >><​fc #​800000>/​usr/​libexec/​repair_packages --list-standard-pkgs</​fc><<​ aufgerufen werden kann!
  
-**Erklärungen:​** In Wirklichkeit werden die Zugriffsrechte auch gar nicht repariert, sondern vielmehr anhand einer Datenbank auf die Vorgaben bei der Installation zurückgesetzt. Bei der Installation von Software im PKG-Format werden vom System (>10.6) XML Dateien in plist Form und BOM Dateien (Bill-Of-Materials) im Verzeichnis <fc #​008000>/​var/​db/​receipts</​fc>​ abgelegt, welche bei der Reparatur der Zugriffsrechte herangezogen werden. Des Weiteren wird in <fc #​008000>/​Library/​Receipts</​fc>​ die Datei <fc #​008000>​InstallHistory.plist</​fc>​ gepflegt. Sie wird vom Installer ausgewertet,​ um die Versionen der installierten Pakete zu ermitteln. ​+**Erklärungen:​** In Wirklichkeit werden die Zugriffsrechte auch gar nicht repariert, sondern vielmehr anhand einer Datenbank auf die Vorgaben bei der Installation zurückgesetzt. Bei der Installation von Software im PKG-Format werden vom System (10.6) XML Dateien in plist Form und BOM Dateien (Bill-Of-Materials) im Verzeichnis <fc #​008000>/​var/​db/​receipts</​fc>​ abgelegt, welche bei der Reparatur der Zugriffsrechte herangezogen werden. Des Weiteren wird in <fc #​008000>/​Library/​Receipts</​fc>​ die Datei <fc #​008000>​InstallHistory.plist</​fc>​ gepflegt. Sie wird vom Installer ausgewertet,​ um die Versionen der installierten Pakete zu ermitteln. ​
  
 Unter Leopard (10.5) finden sich im Verzeichnis <fc #​008000>/​Library/​Receipts</​fc>​ die Third Party Installer PKGs. Die PKGs in <fc #​008000>/​Library/​Receipts</​fc>​ sind jedoch keine vollwertigen Pakete mehr, sie enthalten im Kern der Sache nur noch eine <fc #​008000>​./​Contents/​Archive.bom</​fc>,​ welche wiederum die Zugriffsrechte der installierten Komponenten enthält und in <fc #​008000>​./​Contents/​Resources</​fc>​ evtl. noch die Skripts, welche während der Installation ausgeführt wurden. Des Weiteren befinden sich im Verzeichnis <fc #​008000>/​Library/​Receipts/​boms</​fc>​ die BOM Dateien einiger installierten Pakete, hauptsächlich vom Apple Installer. Unter Leopard (10.5) finden sich im Verzeichnis <fc #​008000>/​Library/​Receipts</​fc>​ die Third Party Installer PKGs. Die PKGs in <fc #​008000>/​Library/​Receipts</​fc>​ sind jedoch keine vollwertigen Pakete mehr, sie enthalten im Kern der Sache nur noch eine <fc #​008000>​./​Contents/​Archive.bom</​fc>,​ welche wiederum die Zugriffsrechte der installierten Komponenten enthält und in <fc #​008000>​./​Contents/​Resources</​fc>​ evtl. noch die Skripts, welche während der Installation ausgeführt wurden. Des Weiteren befinden sich im Verzeichnis <fc #​008000>/​Library/​Receipts/​boms</​fc>​ die BOM Dateien einiger installierten Pakete, hauptsächlich vom Apple Installer.
  
-Wird nun Software auf dem System installiert welche nicht im PKG Format vorliegt, zB durch kopieren bereits lauffähiger Programme (wovon es eine Menge gibt), wird kein Receipt File erzeugt und die gesetzten Berechtigungen werden bei einer Überprüfung der Zugriffsrechte nicht berücksichtigt. ​ Auch Dateien die dynamisch während der Laufzeit erzeugt werden, wie zB die [[:​mac:​ds_store|->​ versteckten Finder Dateien]], sind idR von der Überprüfung bzw. Reparatur ausgeschlossen!+<note tip>Wird nun Software auf dem System installiert welche nicht im PKG Format vorliegt, zB durch kopieren bereits lauffähiger Programme (wovon es eine Menge gibt), wird kein Receipt File erzeugt und die gesetzten Berechtigungen werden bei einer Überprüfung der Zugriffsrechte nicht berücksichtigt. ​ Auch Dateien die dynamisch während der Laufzeit erzeugt werden, wie zB die [[:​mac:​ds_store|->​ versteckten Finder Dateien]], sind idR von der Überprüfung bzw. Reparatur ausgeschlossen!</​note>​
  
 Zum Reparieren der Zugriffsrechte kann das <fc #​008000>>>​Festplatten Dienstprogramm<<</​fc>​ verwendet werden. Dieses greift aber auf das im Terminal ebenfalls verfügbare Programm <fc #​008000>​repair_packages</​fc>​ zurück. Eine im >>​Festplatten Dienstprogramm<<​ angestoßene Überprüfung der Zugriffsrechte auf das Start-Volume zeigt sich in der Prozessliste wie folgt: Zum Reparieren der Zugriffsrechte kann das <fc #​008000>>>​Festplatten Dienstprogramm<<</​fc>​ verwendet werden. Dieses greift aber auf das im Terminal ebenfalls verfügbare Programm <fc #​008000>​repair_packages</​fc>​ zurück. Eine im >>​Festplatten Dienstprogramm<<​ angestoßene Überprüfung der Zugriffsrechte auf das Start-Volume zeigt sich in der Prozessliste wie folgt:
  
-<​xterm>​$ <fc #​008000>​ps -eaf | grep repair_packages</​fc> ​(cr)+<​xterm>​$ <fc #​008000>​ps -eaf | grep repair_packages</​fc>​
  ​0 ​ 1229  1198   ​0 ​  ​0:​00.89 ??  0:02.15 <fc #​800000>/​usr/​libexec/​repair_packages --output-format 1 --verify --standard-pkgs --volume /</​fc>​  ​0 ​ 1229  1198   ​0 ​  ​0:​00.89 ??  0:02.15 <fc #​800000>/​usr/​libexec/​repair_packages --output-format 1 --verify --standard-pkgs --volume /</​fc>​
 </​xterm>​ </​xterm>​
Zeile 20: Zeile 20:
 Eine vollständige Liste der von der Überprüfung eingeschlossener Pakete erhält man durch den Befehl: ​ Eine vollständige Liste der von der Überprüfung eingeschlossener Pakete erhält man durch den Befehl: ​
  
-<​xterm>​$ <fc #​008000>/​usr/​libexec/​repair_packages --list-standard-pkgs</​fc> ​(cr)+<​xterm>​$ <fc #​008000>/​usr/​libexec/​repair_packages --list-standard-pkgs</​fc>​
 </​xterm>​ </​xterm>​
  
Zeile 27: Zeile 27:
 Das Kommandozeilen Utiliy >><​fc #​008000>​lsbom</​fc><<​ ist ein BOM File Parser, mit dem man sich die (Standard-) Berechtigungen der installierten Pakete anzeigen lassen kann. So zeigt Ihnen zB das folgende Kommando die Komponenten des og Pakets <fc #​008000>​com.apple.pkg.BaseSystem</​fc>​ an: Das Kommandozeilen Utiliy >><​fc #​008000>​lsbom</​fc><<​ ist ein BOM File Parser, mit dem man sich die (Standard-) Berechtigungen der installierten Pakete anzeigen lassen kann. So zeigt Ihnen zB das folgende Kommando die Komponenten des og Pakets <fc #​008000>​com.apple.pkg.BaseSystem</​fc>​ an:
  
-<​xterm>​$ <fc #​008000>​lsbom -p MUGsf /​var/​db/​receipts/​com.apple.pkg.BaseSystem.bom</​fc> ​(cr)+<​xterm>​$ <fc #​008000>​lsbom -p MUGsf /​var/​db/​receipts/​com.apple.pkg.BaseSystem.bom</​fc>​
 </​xterm>​ </​xterm>​
  
Zeile 34: Zeile 34:
 Um eine Überprüfung der Standard-Pakete anzustoßen,​ führen Sie folgenden Befehl aus: Um eine Überprüfung der Standard-Pakete anzustoßen,​ führen Sie folgenden Befehl aus:
  
-<​xterm>​$ <fc #​008000>​sudo /​usr/​libexec/​repair_packages --output-format 0 **--verify** --standard-pkgs --volume /</​fc> ​(cr)+<​xterm>​$ <fc #​008000>​sudo /​usr/​libexec/​repair_packages --output-format 0 **--verify** --standard-pkgs --volume /</​fc>​
 </​xterm>​ </​xterm>​
  
 Um die Reparatur durchzuführen dann folgenden Befehl: Um die Reparatur durchzuführen dann folgenden Befehl:
  
-<​xterm>​$ <fc #​008000>​sudo /​usr/​libexec/​repair_packages --output-format 0 **--repair** --standard-pkgs --volume /</​fc> ​(cr)+<​xterm>​$ <fc #​008000>​sudo /​usr/​libexec/​repair_packages --output-format 0 **--repair** --standard-pkgs --volume /</​fc>​
 </​xterm>​ </​xterm>​
  
 Des Weiteren steht noch das <fc #​008000>​diskutil-Kommando</​fc>​ im Terminal zur Verfügung. Mit den Parametern <fc #​008000>​verifyPermissions</​fc>​ und <fc #​008000>​repairPermissions</​fc>​ tut es genau das Selbe wie das og Kommando. Der Unterschied zwischen den beiden Kommandos besteht lediglich darin, dass diskutil nicht im Single-User Modus verwendet werden kann, da das Framework <fc #​008000>​DiskArbitration</​fc>​ im Single-User Modus noch nicht zur Verfügung steht. ​ Des Weiteren steht noch das <fc #​008000>​diskutil-Kommando</​fc>​ im Terminal zur Verfügung. Mit den Parametern <fc #​008000>​verifyPermissions</​fc>​ und <fc #​008000>​repairPermissions</​fc>​ tut es genau das Selbe wie das og Kommando. Der Unterschied zwischen den beiden Kommandos besteht lediglich darin, dass diskutil nicht im Single-User Modus verwendet werden kann, da das Framework <fc #​008000>​DiskArbitration</​fc>​ im Single-User Modus noch nicht zur Verfügung steht. ​
  
-<​xterm>​$ <fc #​008000>​sudo diskutil verifyPermissions /</​fc> ​(cr)+<​xterm>​$ <fc #​008000>​sudo diskutil verifyPermissions /</​fc>​
 [ - 0%..10%..20%................ ] [ - 0%..10%..20%................ ]
 </​xterm>​ </​xterm>​
mac/repair_permissions.1363252566.txt.gz (21404 views) · Zuletzt geändert: 2013/03/14 10:16 von wikisysop
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0