Warum funktioniert „sudo cd“ nicht?

Warum funktioniert „sudo cd“ nicht?

Warum tippensudo cd was auch immerwird das Verzeichnis nicht geändert?

Antwort1

cdist ein Shell-Builtin. sudoFunktioniert nur mit ausführbaren Dateien. Sie könnten das tun, sudo sh -c 'cd dirname'aber sobald die Shell beendet wird, werden Sie in das Verzeichnis zurückgeführt, aus dem Sie gestartet sind. Wenn Sie sagen, was Sie erreichen möchten, kann ich Ihnen helfen, einen Weg zu finden, das zu tun.

Antwort2

Versuchen Sie stattdessen, sudo -seine Root-Shell zu starten und dann einfach cdin das Verzeichnis zu wechseln.
Wenn Sie als Root fertig sind, drücken CtrlDoder geben Sie ein exit.


Wie Arjan in seinem Kommentar unten andeutet, ist es wichtig zu wissen, dass man als Root leicht wesentliche Systemkomponenten beschädigen kann.Vorsichtig verwenden!

Antwort3

Sie können einfach suRoot werden und dann cdso viel tun, wie Sie wollen ... Ich weiß, dass bereits eine Antwort akzeptiert wurde, aber wenn keine auf der Sudoers-Liste steht, ist dies die einzige Option.

Antwort4

Abhängig von Ihrem Betriebssystem gibt es zwei Möglichkeiten, warum es „nicht funktioniert“:

  1. Wenn Ihr Betriebssystem POSIX verwendet, sudo cdführt die Ausführung zuexterner Befehl"cd" (normalerweise unter /usr/bin/cd), um es in einem gegabelten Prozess als Root-Benutzer auszuführen. Dieser Prozess wechselt erfolgreich das Verzeichnis. Sobald dieser Prozess abgeschlossen ist, kehren Sie zu Ihrer normalen Shell zurück, die sich noch immer in dem Verzeichnis befindet, in dem sie gestartet wurde.

    Läuft also sudo cdohne Fehler, ändert aber nicht das aktuelle Arbeitsverzeichnis Ihrer aktuellen Shell.

    (Referenz:diese Antwort)

  2. Andernfalls sudo cdwird beim Ausführen Folgendes passieren. Ihr Computer durchsucht Ihren PATH und versucht, eine ausführbare Datei mit dem Namen "cd" zu finden. Er wird keine finden. (Nur dieIntegrierter Shell-Befehl„cd“ existiert, und das ist keine ausführbare Datei). Daher erhalten Sie einen Fehler. (Unter Ubuntu erhalte ich die Fehlermeldung sudo: cd: command not found.)

    Läuft also sudo cdmit Fehler.

verwandte Informationen