Wie erstelle ich /usr/local mit dem SIP/rootless-Modus auf El Capitan neu?

Bei aktiviertem Rootless-Modus (auch als Systemintegritätsschutz bezeichnet) stellt sich heraus, dass Sie ihn entfernen /usr/local, aber nicht neu erstellen können:

$ sudo rm -rf /usr/local
$ sudo mkdir /usr/local
mkdir: /usr/local: Operation not permitted

Wie kann man einen solchen Ordner (neu) erstellen /usr/local?

Antworten (2)

/usr/localist auf El Capitan seit dem 21.10.2015 sowohl neu erstellbar als auch beschreibbar, als Apple /System/Library/Sandbox/Compatibility.bundleVersion 12 im Software-Update 031-40358 mit Patches für 10.11 und 10.11.1 veröffentlichte und als Teil des 10.11.2-Updates, 10.11.2-Combo, installierte Update und 10.11.2 saubere Installationen. Sie müssen nichts Besonderes tun, es sei denn, Sie haben nicht auf die neueste Point-Release von El Capitan aktualisiert.

Ein gepatchtes System hat ein Kompatibilitätspaket größer oder gleich 12 und wird angezeigt

iMac-TMP:~ joe$ grep /usr/local /System/Library/Sandbox/rootless.conf 
*               /usr/local
iMac-TMP:~ joe$ grep /usr/local /System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths
/usr/local
iMac-TMP:~ joe$ defaults read /System/Library/Sandbox/Compatibility.bundle/Contents/Info.plist CFBundleVersion
12.0
iMac-TMP:~ joe$

Ein ungepatchtes System hat ein Kompatibilitätspaket kleiner als 12.0 und keinen /usr/localEintrag in /System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths.

Der einfachste und sicherste Weg ist:

  • Neustart in die Wiederherstellung ( CMD+ R)
  • Starten Sie das Festplattendienstprogramm
  • Wählen Sie im Menü Macintosh HDund entweder Entsperren , wenn verschlüsselt, andernfalls Mounten
  • Sobald Macintosh HDes gemountet ist, schließen Sie das Festplattendienstprogramm
  • Starten Sie ein Terminal über das Menü des Festplattendienstprogramms

Führen Sie nun die folgenden Befehle aus:

  mkdir "/Volumes/Macintosh HD/usr/local"
  chflags norestricted "/Volumes/Macintosh HD/usr/local"
  ls -lOd "/Volumes/Macintosh HD/usr/local"
  drwxr-xr-x  2 root  wheel  - 68 17 Mar 09:24 /Volumes/Macintosh HD/usr/local
  exit

Oder als ein einfacher Befehl:

  mkdir "/Volumes/Macintosh HD/usr/local"; chflags norestricted "/Volumes/Macintosh HD/usr/local"; ls -lOd "/Volumes/Macintosh HD/usr/local"; drwxr-xr-x  2 root  wheel  - 68 17 Mar 09:24 /Volumes/Macintosh HD/usr/local; exit

Beenden Sie schließlich Terminal und starten Sie OS X neu .

Verweise: