"Eingeschränkter" Ordner / Dateien in OS X El Capitan

70

Nach dem Upgrade von OS X Yosemite auf OS X El Capitan Developer Preview habe ich versucht, /System/Library/LaunchDaemons/ssh.plist zu bearbeiten , um den Standard-SSH-Port in einen benutzerdefinierten zu ändern. Dies ist der Prozess, den ich seit ein paar Jahren verwende.

Das Problem ist, dass El Capitan mir nicht erlaubt, irgendetwas in diesem Ordner zu ändern (nicht einmal mit "sudo"). Der Ordner und seine Dateien werden als "eingeschränkt" markiert, wenn ich den Inhalt mit "ls -lO" aufführe . Dieselbe Ordnerliste in früheren Versionen von OS X zeigt nicht "eingeschränkt" an.

Ist das etwas Neues für OS X El Capitan? Wie kann ich Dateien / Ordner bearbeiten, die "eingeschränkt" sind ?


Ich fand heraus, dass dies auf eine neue in El Capitan eingeführte Funktion namens "SIP" (System Intregrity Protection) zurückzuführen ist .

Lesen Sie hier mehr: https://forums.developer.apple.com/thread/4731?q=SIP

Leider hat niemand eine Möglichkeit vorgeschlagen, "eingeschränkte" Dateien / Ordner zu bearbeiten, ohne SIP tatsächlich zu deaktivieren.

Spencer Müller Diniz
quelle
2
Es gibt keine El Capitan Beta. Apple hat eine Entwicklervorschau des Betriebssystems veröffentlicht, und Sie sollten Probleme an die Apple-Foren
weiterleiten
1
@TheDarkKnight, ja, ich bin mir dessen bewusst und habe diese Frage bereits in den Apple-Foren veröffentlicht.
Spencer Müller Diniz

Antworten:

75

Sie können SIP auch auf folgende Weise vorübergehend deaktivieren

  1. Neustart
  2. Sobald Sie den "Mac-Sound" auf dem grauen Bildschirm hören, drücken Sie Cmd + R, um den Wiederherstellungsmodus aufzurufen
  3. Öffnen Sie Dienstprogramme-> Terminal
  4. Führen Sie den Befehl aus csrutil disable
  5. Neustart, Sie landen im normalen Betriebssystem mit deaktiviertem SIP
  6. Nehmen Sie alle Änderungen vor, die Sie vornehmen möchten
  7. Starten Sie erneut
  8. Sobald Sie den "Mac-Sound" auf dem grauen Bildschirm hören, drücken Sie Cmd + R, um den Wiederherstellungsmodus aufzurufen
  9. Aktivieren Sie SIP mit csrutil enable
  10. Starten Sie erneut
  11. getan
Johannes Weiss
quelle
Arbeitete für mich - ich musste chmod u+s /usr/sbin/pppdSonicWall NetExtender wieder mit El-Capitan arbeiten lassen, und die obigen Anweisungen machten dies möglich.
Amos Shapira
1
@Johannes Weiß Ist es möglich, SIP für einen bestimmten Ordner auf einem Volume zu deaktivieren?
Ashutosh Dave
Arbeitete für mich mit einer "Rad eingeschränkt" -Datei im Papierkorb
Bisca
27

Bis 10.11 den Schutz bestimmter Dateien in / System / Library aufhebt oder Sie dies selbst tun können, besteht die einzige Möglichkeit, SIP nicht zu deaktivieren, darin, einen anderen Dienst zu erstellen, indem Sie die Datei an eine andere Stelle kopieren, z.

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

Anstatt das Freigabefenster in den Systemeinstellungen zu verwenden, würden Sie den Dienst selbst verwalten:

sudo launchctl unload /Library/LaunchDaemons/ssh.plist
sudo launchctl load -w /Library/LaunchDaemons/ssh.plist
empedocle
quelle
1
Stellen Sie sicher, dass Sie den Dateinamen und den LabelSchlüssel in der Datei ändern , um Konflikte mit dem ursprünglichen Startelement zu vermeiden.
Gordon Davisson
Ich denke, das ist die beste Antwort. Möglicherweise möchten Sie eine Erinnerung bearbeiten und hinzufügen, die Sie entweder neu starten müssen oder sudo launchctl start com.openssh.sshd(oder was auch immer LabelSie angegeben haben), bevor sie tatsächlich funktioniert.
n8henrie
Hilft bei org.apache.httpd.plist. Toller Vorschlag und sollte als "korrekter" Weg imo akzeptiert werden.
Lifecoder
Was schützt bis 10.11 bestimmte Dateien? Einige seltsame Formulierungen in dieser Antwort.
Brad Johnson
@BradleagheJohnson empedocle bedeutet "Bis eine Revision von 10.11 ungeschützt ..."
jhfrontz
4

Ich würde vorschlagen, dass Sie versuchen, alle Argumente, die Sie benötigen, zu einer Liste in / Library / Preferences / hinzuzufügen. In meinem Fall musste ich beispielsweise eine geringfügige Änderung an mDNSResponder vornehmen, um das AlwaysAppendSearchDomains-Flag hinzuzufügen. Wie von "bwells" in den Apple-Entwicklerforen vorgeschlagen, musste ich es einfach tun

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

Dies ist ein viel saubererer Ansatz, der über Neustarts hinweg bestehen bleibt und auch ein Upgrade überstehen sollte (zumindest während der Betas wurden meine manuellen Änderungen nach dem Deaktivieren von SIP überschrieben). Beachten Sie, soweit ich weiß, dass dies für El Capitan neu ist.

djh
quelle
1
Hier ist der relevante Thread . Scheint nicht zu funktionieren, um einen benutzerdefinierten SSH-Port zu verwenden, zBsudo defaults write /Library/Preferences/ssh.plist SockServiceName -string $PORT
n8henrie
3

Sie können SIP auch aktiviert lassen, während Sie die Dateisystemverwaltung deaktivieren. Starten Sie im Wiederherstellungsmodus neu und führen Sie Folgendes aus:

csrutil enable --without fs

Auf diese Weise können Sie die Berechtigungen nach Bedarf ändern.

Michael Guthrie
quelle
Vielen Dank. Würde dies nicht den Sicherheitszweck dieser neuen Funktion zunichte machen?
Amos Shapira
@ Amos SIP hat viele Komponenten. Der Dateisystemschutz ist nur eine Komponente. Ja, durch Deaktivieren wird die Sicherheit beeinträchtigt, jedoch nur für diese bestimmte Funktion, nicht für SIP.
Grg
2
  1. Starten Sie einfach in den "Wiederherstellungsmodus", indem Sie beim Neustart "CMD + R" drücken.
  2. Terminal öffnen
  3. Ihre Festplatte wird in / Volumes / Macintosh HD bereitgestellt
  4. Dateien über "rm" löschen: Sie haben die absolute Kontrolle in diesem Terminal.
Mayank Jain
quelle
Ich sehe nur einen Symlink zu /in /Volumes/. Wie wird das Live-System montiert? Das Verfahren der akzeptierten Antwort hat funktioniert, ich bin nur neugierig auf das nächste Mal.
Vampir
Sie müssen das Volume im Wiederherstellungsmodus bereitstellen, bevor Sie das Terminal öffnen. Alternativ können Sie 'diskutil mountDisk <Gerät>' vom Terminal aus verwenden.
user2892047
Sie können die grafische Oberfläche des "Festplatten-Dienstprogramms" im Wiederherstellungsmodus verwenden, um Ihre (verschlüsselte) Festplatte bereitzustellen, wenn Sie nicht daran interessiert sind, die diskutilBefehlszeile zu lernen .
MarcH
1

Ich verwende Carbon Copy Cloner, um klonbare Backups zu erstellen ... und habe mehrere in Rotation.

Laut Mike von Bombich "gilt SIP nur für das Volume, von dem Sie gerade gebootet haben, sodass [man] vom Backup-Volume booten kann, um [Dateien] zu löschen".

Ich habe die Antwort von johannes verwendet (Wiederherstellungslaufwerk, csrutil aktivieren / deaktivieren), aber das erfordert einen Neustart -> Wiederherstellungslaufwerk -> Schluck ausschalten -> Neustart -> Mist löschen -> Neustart -> Wiederherstellungslaufwerk -> Schluck wieder einschalten - > Neustart ... vier Neustarts.

Wenn Sie jedoch von einem Klon booten und das ursprüngliche Laufwerk als sekundäres Laufwerk betrachten, können Sie problematische Dateien in zwei Neustarts löschen ... ja?

blinde
quelle
-1

Sie können den SIP-Schutz "umgehen", indem Sie die in der Datei enthaltenen Berechtigungen über die Finder-App für die Systemgruppe ändern.

Berechtigungen ändern

Es hat gut funktioniert für mich, auch nach dem Neustart, ich laufe

ProductName: Mac OS X ProductVersion: 10.11 BuildVersion: 15A284

Michaël Rivet
quelle
Ich bekomme das nicht zum Laufen - ich habe R + W-Berechtigungen für das System, wie Sie zeigen, und ich bin ein Administrator, aber ich kann immer noch keine sudo vim(unzureichenden Berechtigungen) oder Schreibberechtigungen im Finder hinzufügen. Ich denke nicht, dass Systemberechtigungen ausreichen, um einem Benutzer (sogar Root) das Schreiben in diese Datei zu ermöglichen.
n8henrie