6 votes

Comment recréer /usr/local avec le mode SIP/rootless sur El Capitan ?

Lorsque le mode sans racine est activé (ou protection de l'intégrité du système), il s'avère que vous pouvez supprimer les éléments suivants /usr/local mais ne peut pas la recréer :

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

Comment (re)créer /usr/local ou tout autre dossier de ce type ?

10voto

K-Gun Points 656

/usr/local est à la fois recréable et accessible en écriture sur El Capitan depuis le 2015-10-21, date à laquelle Apple a publié le fichier /System/Library/Sandbox/Compatibility.bundle version 12 dans la mise à jour logicielle 031-40358 Parcheando 10.11 et 10.11.1, et installée dans le cadre de la mise à jour 10.11.2, de la mise à jour combinée 10.11.2 et de l'installation propre 10.11.2. Vous n'avez rien à faire de particulier, sauf si vous n'avez pas mis à jour la dernière version d'El Capitan.

Un système patché aura un paquet de compatibilité supérieur ou égal à 12 et présentera les caractéristiques suivantes

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$

Un système non corrigé aura un paquet de compatibilité inférieur à 12.0 et ne disposera pas de la fonctionnalité /usr/local entrée dans /System/Library/Sandbox/Compatibility.bundle/Contents/Resources/paths .

5voto

Pontus Points 730

Le moyen le plus simple et le plus sûr est de le faire :

  • redémarrer en mode de récupération ( CMD + R )
  • commencer Utilitaire de disque
  • dans le menu, sélectionnez Macintosh HD et soit Déverrouiller si crypté sinon Montage
  • une fois Macintosh HD est monté, fermez l'Utilitaire de disque
  • démarrer un Terminal de la Utilitaire de disque menu

Exécutez ensuite les commandes suivantes :

  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

Ou, comme un simple commandement :

  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

Enfin, démissionner Terminal et redémarrer OS X.

Références :

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X