Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

mac:repair_permissions [2011/03/31 17:19]
127.0.0.1 external edit
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 ​von Snow Leopard ​(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 von Snow Leopard uA 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:
  
-<xterm2>$ <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>​
-</xterm2>+</xterm>
  
 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: ​
  
-<xterm2>$ <fc #​008000>/​usr/​libexec/​repair_packages --list-standard-pkgs</​fc> ​(cr) +<xterm>$ <fc #​008000>/​usr/​libexec/​repair_packages --list-standard-pkgs</​fc>​ 
-</xterm2>+</xterm>
  
 (≥ 10.6): Damit ein Paket in dieser Liste erscheint, muss die og BOM-Datei entweder in <fc #​008000>/​var/​db/​receipts</​fc>​ oder die <fc #​008000>​./​Contents/​Archive.bom</​fc>​ im Paket in <fc #​008000>/​Library/​Receipts</​fc>​ vorhanden sein. Des Weiteren muss in der Plist im Array <fc #​008000>​PackageGroups</​fc>​ der Eintrag vorhanden sein. Wenn Sie sich die Liste anzeigen lassen, werden Sie feststellen,​ wie wenig Pakete da aufgeführt werden. Das ist lange nicht jede installierte Software auf Ihrem System, wobei vor allem Pakete wie zB <fc #​008000>​com.apple.pkg.BaseSystem</​fc>​ schon eine ganze Latte an Komponenten berücksichtigt. (≥ 10.6): Damit ein Paket in dieser Liste erscheint, muss die og BOM-Datei entweder in <fc #​008000>/​var/​db/​receipts</​fc>​ oder die <fc #​008000>​./​Contents/​Archive.bom</​fc>​ im Paket in <fc #​008000>/​Library/​Receipts</​fc>​ vorhanden sein. Des Weiteren muss in der Plist im Array <fc #​008000>​PackageGroups</​fc>​ der Eintrag vorhanden sein. Wenn Sie sich die Liste anzeigen lassen, werden Sie feststellen,​ wie wenig Pakete da aufgeführt werden. Das ist lange nicht jede installierte Software auf Ihrem System, wobei vor allem Pakete wie zB <fc #​008000>​com.apple.pkg.BaseSystem</​fc>​ schon eine ganze Latte an Komponenten berücksichtigt.
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:
  
-<xterm2>$ <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>​ 
-</xterm2>+</xterm>
  
 (Parametersatz (-p) MUGsf: <fc #​800000>​M</​fc>​ -> symbolische Anzeige (zB: drwxr-xr-x);​ <fc #​800000>​U</​fc>​ -> User Name; <fc #​800000>​G</​fc>​ -> Group Name; <fc #​800000>​s</​fc>​ -> Dateigröße;​ <fc #​800000>​f</​fc>​ -> Datei Name) (Parametersatz (-p) MUGsf: <fc #​800000>​M</​fc>​ -> symbolische Anzeige (zB: drwxr-xr-x);​ <fc #​800000>​U</​fc>​ -> User Name; <fc #​800000>​G</​fc>​ -> Group Name; <fc #​800000>​s</​fc>​ -> Dateigröße;​ <fc #​800000>​f</​fc>​ -> Datei Name)
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:
  
-<xterm2>$ <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>​ 
-</xterm2>+</xterm>
  
 Um die Reparatur durchzuführen dann folgenden Befehl: Um die Reparatur durchzuführen dann folgenden Befehl:
  
-<xterm2>$ <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>​ 
-</xterm2>+</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. ​
  
-<xterm2>$ <fc #​008000>​sudo diskutil verifyPermissions /</​fc> ​(cr)+<xterm>$ <fc #​008000>​sudo diskutil verifyPermissions /</​fc>​
 [ - 0%..10%..20%................ ] [ - 0%..10%..20%................ ]
-</xterm2>+</xterm>
  
 Für weitere Informationen bzgl. der Verwendung des diskutil-Kommandos lesen Sie bitte: [[mac:​diskutil#​zugriffsrechte_ueberpruefen_reparieren|->​ diskutil repair/​verifyPermissions]] Für weitere Informationen bzgl. der Verwendung des diskutil-Kommandos lesen Sie bitte: [[mac:​diskutil#​zugriffsrechte_ueberpruefen_reparieren|->​ diskutil repair/​verifyPermissions]]
mac/repair_permissions.1301584756.txt.gz (21407 views) · Zuletzt geändert: 2011/04/16 20:04 (Externe Bearbeitung)
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