Sudo erklärt

Was Sie erstellen werden

Mit dem Aufkommen von OS X 10.11 El Capitan, die Nöte von wurzellos Modus wurde real. Dieser neue Modus ist eine Sicherheitsfunktion, indem das Schreiben in alle vom System kontrollierten Bereiche Ihres Mac blockiert wird. Das bedeutet, dass Sie nur Dinge im Home-Verzeichnis bearbeiten und ändern können.

Für viele von uns ist das ein echtes Problem. ich liebe Homebrew, aber es steckt alles in der / usr / local Verzeichnis. Bei einer Neuinstallation von El Capitan, Dieses Verzeichnis existiert nicht und kann normalerweise nicht erstellt werden. 

Auf einem aktualisierten System, das dieses Verzeichnis bereits hat, wird der Besitzer root (und alles darin!). Das bricht total ab Homebrew mit einem Operation unzulässig Fehlermeldung. Am schlimmsten ist, wenn Sie das Problem beheben, bricht es das nächste Update erneut ab. Mein System wurde aktualisiert El Capitan zweimal und jedes Mal musste ich es reparieren, um es richtig zu verwenden Homebrew.

Wenn Sie nicht mit der Verwendung der Befehlszeile und den am häufigsten verwendeten Befehlen vertraut sind, lesen Sie bitte Die Befehlszeile ist dein bester Freund Tutorial zuerst. In diesem Lernprogramm werden die Grundlagen der Verwendung der Befehlszeile erläutert. 

Sie können sich auch darauf beziehen Die Befehlszeile für Webdesign Serie und die Kurse So werden Sie ein Terminal Pro und Erweiterte Befehlszeilentechniken

Wenn Sie nicht vertraut sind Homebrew, Bitte lesen Sie das Tutorial Homebrew Demystified: Der ultimative Paket-Manager von OS X.

Der Sudo-Befehl

Das Sudo Befehl steht für Super User DO. Sie können damit jeden anderen Terminalbefehl als ausführen Superuser oder häufiger als Root-Benutzer bezeichnet. Der Superuser ist der Chef des Computers. Der Superuser kann auf dem Computer alles tun, um ihn zu reparieren und zu zerstören. 

Die Verwendung dieses Befehls kann sehr gefährlich sein.

Dieser Befehl befindet sich im / usr / bin Verzeichnis. Sie müssen zuerst sicherstellen, dass sich dieses Verzeichnis in Ihrem Pfad befindet. Führen Sie deshalb diesen Befehl im Terminal aus:

env | grep "PFAD"

In der Zeile, die mit beginnt PFAD =, Überprüfen Sie den Pfad / usr / bin in der Doppelpunkt-Liste. Wenn es nicht da ist, füge dies dem hinzu ~ / .bashrc Datei für die Bash-Shell oder die ~ / .zshrc Datei zsh für die zsh-Shell:

export PATH = "$ PATH: / usr / bin";

Jetzt können Sie die Sudo Befehl. Einige denken vielleicht, dass dies die Standardeinstellung ist, aber ich habe festgestellt, dass einige Systeme diese Konfiguration nicht haben. Ich debugiere Computerprobleme für viele Leute und habe das gesehen / usr / bin Verzeichnis fehlt in vielen Anmeldeskripten.

Um die Sudo Wenn Sie den Befehl eingeben, geben Sie die Befehlszeile ein, nach der Sie ausführen möchten Sudo mit einem Leerzeichen. 

Für das Beispiel der Befestigung Homebrew, Sie müssen den Besitz der Verzeichnisstruktur in den Anmeldenamen ändern. Wenn Sie nicht sicher sind, was das System für den Anmeldenamen verwendet, öffnen Sie die Terminal.app im Home-Verzeichnis und geben Sie ein:

ls -ld .

Das ls Befehl wird Liste den Inhalt eines Verzeichnisses. Die Flaggen -ld sagen ls um die lange Ansicht mit Dateiattributen (l) und nur das Verzeichnis (d) anzuzeigen. Das . bezeichnet das aktuelle Verzeichnis. Dies sollte eine Ausgabe ähnlich der folgenden erzeugen:

drwxr-xr-x 132 raguay mitarbeiter 884 6. november 14:11 .

Das Raguay ist der Anmeldename auf meinem System. Es wird für Sie anders sein und ist der Name, in den Sie das ändern müssen / usr / local / Eigentum.

Nun, um das Eigentum an der / usr / local / Verzeichnis, müssen Sie die chown Befehl. Das chown Befehl steht für Besitzer wechseln und das ist es, was es tut. Auf meinem System lautet der Befehl:

sudo chown -R raguay / usr / local

Das -R flag sagt chown den Besitz rekursiv ändern. Das heißt, jede Datei und jedes Verzeichnis in / usr / local wird ihr Besitzer in geändert werden Raguay. Sie müssen den Benutzernamen entsprechend Ihres Systems ändern.


Eigentumsvorbehalt von / usr / local

Oben sehen Sie die Fehlermeldung, wenn Sie versuchen, das zu ändern / usr / local Verzeichnisbesitz ohne Verwendung Sudo. Ich habe das nicht benutzt -R Flag als würde es einen Fehler für jede Datei und Verzeichnis erzeugen. Die nächste Befehlszeile verwendet die Sudo Befehl. Der Befehl fragt nach Ihrem Passwort und führt die Aktion dann fehlerfrei aus.

Die Gefahren

Wie gesagt, das gibt Ihnen viel Macht über das System. Seien Sie vorsichtig, Sie können das System mit dem System unbrauchbar machen Sudo Befehl. Die Befehlszeile zum Löschen einer Datei lautet beispielsweise rm für ReMove eine Datei. Wenn Sie Folgendes eingeben:

sudo rm -R /

Sie werden alles auf der Festplatte löschen. Das bedeutet, dass Sie Ihr Betriebssystem, alle vorhandenen Programme und alle Ihre Datendateien von einer Sicherung komplett neu installieren müssen. Wenn Sie keine Sicherung haben, ist alles weg.

Sogar die chown Befehl kann Dinge unbrauchbar machen. Wenn Sie den Besitzer aller Dateien in ändern / Bewerbungen Wenn der Name des Verzeichnisses nicht vorhanden ist, können Sie keine Anwendungen in diesem Verzeichnis ausführen.

Seien Sie daher sehr vorsichtig, wie Sie das verwenden Sudo Befehl.

Fazit

Nachdem Sie jetzt Probleme mit dem Besitz auf Ihrem Mac behoben haben, können Sie ähnliche Probleme beheben, die möglicherweise in der Zukunft auftreten. Denken Sie daran, den Befehl sehr sorgfältig zu verwenden, und prüfen Sie den eingegebenen Befehl, bevor Sie Ihr Kennwort eingeben. 

Einmal ausgeführt, kann das Rückgängigmachen ohne vollständige Neuinstallation des Betriebssystems nahezu unmöglich sein.