DD-Operation nicht zulässig, wie verlasse ich die Sandbox?

DD-Operation nicht zulässig, wie verlasse ich die Sandbox?

Ich versuche, einen fehlerhaften Sektor auf meiner Festplatte wiederherzustellen und muss dabei den fehlerhaften Sektor überschreiben. Zahlreiche Quellen im Internet schlagen vor, dafür dd zu verwenden, aber das funktioniert nicht:

$ sudo dd if=/dev/zero of=/dev/disk1 bs=512 count=1 seek=961575240
dd: /dev/disk1: Operation not permitted
$

Ich dachte, es gäbe vielleicht eine Art Kontrolle, ob dies mit einem gemounteten Dateisystem passiert, also habe ich im Einzelbenutzermodus gebootet (der es zumindest im Nur-Lese-Modus belässt), aber ich bekomme immer noch denselben Fehler. Es werden jedoch auch einige zusätzliche Meldungen zum Sandboxing angezeigt.

Sandbox: dd(5) System Policy: deny(1) file-write-data /dev/disk1
Sandbox: dd(5) System Policy: deny(1) file-write-data /dev/disk1

Gibt es eine Möglichkeit, dd aus der Sandbox zuzulassen? Ich habe es versucht

sudo sandbox-exec -p '(version 1) (allow default)' /bin/dd if=/dev/zero of=/dev/disk1 bs=512 count=1 seek=961575240

Es trat aber trotzdem der Fehler „Operation nicht zulässig“ auf.

Dies ist auf OS X 10.11 GM

Antwort1

Ich habe keinen Opfercomputer, auf dem ich das testen könnte, aber ich glaube, Sie stoßen auf dasSchutz der SystemintegritätFunktion in El Capitan. SIP verhindert hauptsächlich, dass Sie (selbst als Root) Systembereiche der Festplatte ändern (/System, /sbin, /bin/, der Großteil von /usr usw.), Systemprozesse manipulieren, falsch signierte Kexts laden usw. Um diesen Schutz der Systemordner durchzusetzen, verhindert es aber auch Rohschreibvorgänge auf dem Gerät, auf dem sich das Systemvolume befindet. Ja, auch wenn Sie Root sind (das ist der Sinn der Sache – es geht darum, den Schaden durch Malware zu begrenzen, die Root-Zugriff erhält).

ICHdenkenDiese Grenze gilt nicht inWiederherstellungsmodus. Halten Sie beim Starten des Computers die Tastenkombination Command-R gedrückt. Der Computer wird dann von einer versteckten Notfallpartition gebootet. Öffnen Sie Terminal (unter dem Menü „Dienstprogramme“) und versuchen Sie ddvon dort aus. ddist möglicherweise nicht auf dem Wiederherstellungssystem vorhanden (es ist ziemlich minimal), aber Sie können /Volumes/Macintosh\ HD/bin/ddstattdessen verwenden. Sie brauchen nicht sudo, Sie sind bereits Root.

Wenn das nicht funktioniert, versuchen Sie, SIP mit zu deaktivieren csrutil disableund dann einen normalen Neustart durchzuführen (sieheApples Dokument zur SIP-Konfiguration). Wenn Sie fertig sind, empfehle ich Ihnen, es wieder zu aktivieren – es ist eine nützliche Sicherheitsfunktion.

Antwort2

In meinem Fall musste ich meine „Systemeinstellungen > Sicherheit und Datenschutz > Vollständiger Festplattenzugriff > Terminal“ oder iTerm2 ändern.

Nachdem ich dem Terminal bzw. iTerm2 vollen Festplattenzugriff gewährt hatte, ddwaren die Vorgänge ohne Änderung von SIP/Root oder + möglich r... das habe ich auch versucht ;-)

Antwort3

Versuchen Sie es mit su.

Unter Linux/Unix müssen Sie zunächst ein Passwort für den Root-Benutzer festlegen, etwa:

sudo passwd root

Dann sollten Sie über die erforderliche Berechtigung verfügen, dies zu tun.

Überprüfen Sie auch, ob alle Partitionen ausgehängt sind.

Geben Sie ein mountund prüfen Sie, welche Partitionen gemountet sind.

Dann:

sudo umount /dev/disk1sX

Anstatt disk1sXdie richtige Partition zu schreiben.

verwandte Informationen