web-dev-qa-db-fra.com

Dossier / fichiers "restreints" sous OS X El Capitan

Après la mise à niveau d'OS X Yosemite vers l'aperçu du développeur OS X El Capitan, j'ai essayé de modifier /Système/Bibliothèque/LaunchDaemons/ssh.plist pour modifier le paramètre par défaut. Port SSH sur un port personnalisé. C’est le processus que j’utilise depuis quelques années.

Le problème est que El Capitan ne me permet pas de changer quoi que ce soit dans ce dossier (même avec "Sudo"). Le dossier et ses fichiers sont marqués comme "restreints" lorsque je liste le contenu avec "ls -lO" . La même liste de dossiers dans les versions précédentes d’OS X n’affiche pas "restreint".

Est-ce quelque chose de nouveau pour OS X El Capitan? Comment puis-je éditer des fichiers/dossiers qui sont "restreints" ?


J'ai découvert que cela était dû à une nouvelle fonctionnalité introduite dans El Capitan appelée "SIP" (Protection de l'intégrité du système). .

Lisez plus ici: https://forums.developer.Apple.com/thread/4731?q=SIP

Malheureusement, personne n’a suggéré de modifier les fichiers/dossiers "restreints" sans désactiver SIP.

68

Vous pouvez également désactiver temporairement SIP de la manière suivante

  1. redémarrer
  2. dès que vous entendez le "son Mac" sur l'écran gris, appuyez sur les touches Cmd + R pour passer en mode de récupération
  3. Ouvrir Utilitaires-> Terminal
  4. Exécutez la commande csrutil disable
  5. Redémarrez, vous allez atterrir dans le système d'exploitation normal avec SIP désactivé
  6. faites tous les changements que vous voudriez faire
  7. Redémarrer à nouveau
  8. dès que vous entendez le "son Mac" sur l'écran gris, appuyez sur les touches Cmd + R pour passer en mode de récupération
  9. Activer SIP avec csrutil enable
  10. Redémarrer à nouveau
  11. terminé
73
Johannes Weiss

Jusqu'au 10.11, certains fichiers de/System/Library ne sont plus protégés ou vous permet de le faire vous-même. La seule façon de ne pas désactiver SIP serait de créer un service différent en copiant le fichier ailleurs, comme:

Sudo cp /System/Library/LaunchDaemons/ssh.plist /Library/LaunchDaemons/ssh.plist

Et au lieu d'utiliser le panneau Partage dans les Préférences Système, vous géreriez le service vous-même:

Sudo launchctl unload /Library/LaunchDaemons/ssh.plist
Sudo launchctl load -w /Library/LaunchDaemons/ssh.plist
26
empedocle

Je vous suggérerais d'essayer d'ajouter tous les arguments nécessaires à un plist dans/Library/Preferences /. Par exemple, dans mon cas, je devais apporter une légère modification à mDNSResponder pour ajouter le drapeau AlwaysAppendSearchDomains. Comme suggéré par "bwells" sur les forums de développeurs Apple, il me suffisait de le faire

Sudo launchctl unload /System/Library/LaunchDaemons/com.Apple.mDNSResponder.plist
Sudo defaults write /Library/Preferences/com.Apple.mDNSResponder.plist AlwaysAppendSearchDomains -bool YES
Sudo launchctl load /System/Library/LaunchDaemons/com.Apple.mDNSResponder.plist

Cette approche est beaucoup plus propre et persiste après les redémarrages. Elle devrait également survivre à une mise à niveau (au moins pendant les versions antérieures, mes modifications manuelles après la désactivation de SIP ont été écrasées). Notez, autant que je sache, ceci est nouveau pour El Capitan.

4
djh

Vous pouvez également laisser SIP activé en désactivant la gestion du système de fichiers. Redémarrez en mode de récupération et exécutez:

csrutil enable --without fs

Cela vous permettra de modifier les autorisations si nécessaire.

3
Michael Guthrie
  1. Démarrez simplement en mode "Récupération" en appuyant sur "CMD + R" lors du redémarrage.
  2. Terminal ouvert
  3. Votre disque sera monté dans/Volumes/Macintosh HD
  4. Supprimer des fichiers via "rm": vous avez un contrôle absolu sur ce terminal.
2
Mayank Jain

J'utilise Carbon Copy Cloner pour faire des sauvegardes clonables ... et en avoir plusieurs en rotation.

Selon mike at bombich, "SIP ne s’applique qu’au volume sur lequel vous démarrez actuellement. Vous pouvez donc démarrer à partir du volume de sauvegarde pour supprimer [fichiers]".

J'ai utilisé la réponse de johannes (lecteur de récupération, csrutil activé/désactivé), mais cela nécessite un redémarrage -> lecteur de récupération -> désactiver sip -> redémarrer -> supprimer la merde -> redémarrer -> lecteur de récupération -> réactiver sip - > redémarrez ... quatre redémarrages.

Mais démarrer à partir d'un clone et voir le lecteur d'origine en tant que lecteur secondaire vous permettrait de supprimer les fichiers problématiques en deux redémarrages ... oui?

1
blinde