it-swarm.com.de

Es kann kein Symlink in / usr / bin erstellt werden, auch nicht als sudo

Wenn ich versuche, eine Binärdatei in meinem Ordner/usr/bin zu verknüpfen, wird der Fehler "Vorgang nicht zulässig" angezeigt:

 Sudo ln -s /usr/bin/python2.7 /usr/bin/python2
ln: /usr/bin/python2: Operation not permitted

Schon als Sudo bekomme ich diesen Fehler.

72
egidra

Warum kann ich keine Symlinks zu /usr/bin Erstellen?

Die neue Funktion Systemintegritätsschutz von El Capitan verhindert Änderungen an mehreren Kernbereichen von OS X, einschließlich des größten Teils von /usr/, Auch von root.

Wie kann ich meinem Pfad noch ausführbare Dateien hinzufügen?

Lokale Anpassungen, wie z. B. die von Ihnen vorgenommenen, gehören stattdessen zu /usr/local. Der Pfad /usr/local/bin Ist standardmäßig nicht vorhanden, Sie können ihn jedoch erstellen und benutzerdefinierte Binärdateien (und Symlinks) einfügen:

Sudo mkdir -p /usr/local/bin
Sudo ln -s /usr/bin/python2.7 /usr/local/bin/python2

Beachten Sie, dass /usr/local/bin Standardmäßig nicht vorhanden ist, es sich jedoch im Standard-PATH befindet werde nach befehlen durchsucht.

SIP deaktivieren

Es ist auch möglich, den Systemintegritätsschutz zu deaktivieren. Im Allgemeinen ist es jedoch am besten, ihn aktiviert zu lassen und die Anpassung an geeigneten Stellen vorzunehmen. Eine Apple Stack Exchange-Frage enthält weitere Details zu diesem Thema: Was ist das Rootless-Feature in El-Captain wirklich? .

117
Gordon Davisson

Ich habe den symbolischen Link für Sublime Text 3 in Mac OS High Sierra als erstellt

Sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/

Ich habe auch versucht, den symbolischen Link in "/ usr/bin" zu erstellen und habe "Operation Not Permitted" erhalten.

Dann habe ich den symbolischen Link in "/ usr/local/bin" erstellt und es gab keinen Fehler. Die symbolische Verknüpfung funktioniert einwandfrei. Stellen Sie einfach sicher, dass sich "/ usr/local/bin" im Pfad befindet.

Daher scheint der Zugriff auf "/ usr/bin" beschränkt zu sein.

9
Vineet Sharma

Starten Sie das System neu -> drücken Sie lange cmd + R. Wählen Sie ein Terminal aus dem Menü Dienstprogramme. Geben Sie den folgenden Befehl ein: csrutil disable Terminal schließen und System neu starten.

4
James