Wechseln Sie das Verzeichnis mit sudo

22

Wie wechsle ich in ein Stammverzeichnis?

Wenn ich mache: sudo cd RootOwedDir

Ich bekomme: sudo cd: command not found

Wenn ich su root

Ich bekomme:, authentication failurewahrscheinlich, weil ich nie wirklich ein Root-Konto eingerichtet habe.

Was mache ich hier falsch?

Unbekannter Google-Nutzer
quelle
Zusammenfassend lässt sich sagen, dass sowohl "sudo su" von cYrus als auch "sudo sh -sc" cd dir_path "das Problem gelöst haben. Vielen Dank für ihre Hilfe.
Unbekannter Google-Nutzer

Antworten:

20

Versuchen Sie stattdessen sudo -smit eine Root-Shell zu starten und dann einfach cdin das Verzeichnis.
Wenn du als root fertig bist, drücke CtrlDoder tippe exit.

Es ist wichtig zu beachten, dass man als Root leicht wesentliche Systemkomponenten beschädigen kann. Mit Vorsicht verwenden!

OKTOSITÄT
quelle
5

Das liegt daran, dass cdes sich nicht um einen Befehl handelt, sondern um eine integrierte Shell-Funktion. und suerwartet das root-Passwort. Einfach benutzen:

sudo su

um eine Shell mit root-Rechten auszuführen. Geben Sie ein exitoder drücken Sie Ctrl+ D, um zur vorherigen Shell zurückzukehren, wenn Sie fertig sind.

cYrus
quelle
2
sudo suist unnötig kompliziert. sudo -slässt sudo eine Shell starten; oder du kannst rennen sudo bashoder sudo zshwenn du dich nicht an die -sOption erinnern willst .
Gilles 'SO - hör auf böse zu sein'
3
sudo sh -c "cd dir_path"
Wesley Reis
quelle
Das funktioniert auch bei mir nicht. Dies kann daran liegen, dass das Verzeichnis, das ich eingeben möchte, Leerzeichen im Namen enthält. Ich habe Variationen von sudo sh -c "cd my \ path" ohne Erfolg ausprobiert. Keine Fehlermeldung, es wird nur zurückgegeben, als ob es etwas getan hätte, aber ich bleibe im selben Verzeichnis. sh ist auf meinem System installiert, obwohl ich normalerweise bash benutze.
Unbekannter Google-Nutzer
@unknown - Ich habe immer gedacht, dass Sie eine Subshell erzeugen müssen, um Shell-Builtins als Root auszuführen, egal ob in bash oder in plain old sh. Ich bin entschlossen, das herauszufinden.
Wesley Rice
Das Hinzufügen der Option -s neben -c hat den Trick getan. Danke für die Mühe.
Unbekannter Google-Nutzer
1

Sie können sudo vimden Ordner auch bearbeiten, dh, sudo vim RootOwedDires wird die VIM-Ansicht für Ordner angezeigt, in der alle Dateien / Ordner angezeigt werden, die sich in diesem Ordner befinden. dann können Sie einfach von außerhalb des Ordners ausführen, was Sie brauchen, und sudo es wie gewohnt.

Kennzeichen
quelle
0

su -Geben Sie dann Ihr Passwort ein. Sie können jetzt einfach in das Verzeichnis cd. Denken Sie daran, dass Sie jetzt root sind, und drücken Sie die Tastenkombination Strg-D, bevor Sie etwas tun, für das Sie nicht root sein möchten.

Nicht finanzierte Nuss
quelle
Dies führt unter Ubuntu zu einem Authentifizierungsfehler.
Wesley Rice
"Ja wirklich?" Ich hatte noch nie ein Problem für mich.
Unfundednut
2
Für OP wäre es sicherlich, da er kein richtiges Root-Konto hat.
Wesley Rice
Interessant, ich bin auf einer Neuinstallation von Ubuntu, ich habe noch nie einen Root-Benutzer 'eingerichtet', aber ich kann es einfach sudo -und bin der Gott des Systems.
Unfundednut
Ja, ich erhalte gerade einen Authentifizierungsfehler.
Unbekannter Google-Nutzer
0

Für mich eine Kombination aus sudound screenausgearbeitet:

sudo -iu vagrant screen -mS npm_install bash -c 'cd /vagrant && npm install'

Dieser Befehl wechselt zuerst zum vagrantBenutzer. Dann wechselt as vagrantins Verzeichnis /vagrantund wird ausgeführt npm install.

czerasz
quelle
-2

Der einfachste Weg, dies zu tun, besteht darin, das Root-Konto zu aktivieren und su zu verwenden, um root zu werden. Ubuntu schützt den Root-Account sehr, da er möglicherweise missbraucht wird. Manchmal ist es jedoch viel einfacher, den Root-Account zu verwenden, als sudo in jeder Zeile. Achten Sie einfach darauf, welches Konto Sie zu einem bestimmten Zeitpunkt verwenden.

Von hier genommen :

Öffnen Sie das Terminal und geben Sie Folgendes ein : sudo passwd root . Wenn Sie zur Eingabe eines neuen UNIX-Kennworts aufgefordert werden , geben Sie das gewünschte Kennwort für den Root-Benutzer ein und bestätigen Sie es.

Zu diesem Zeitpunkt können Sie mit su und cd in das Verzeichnis zu root wechseln .

zcid
quelle
-1. Das ist voll von Unrecht. Was hat GDM mit irgendetwas zu tun? OP möchte in ein Verzeichnis 'cd', das nur von root gelesen werden kann. Niemand sollte sich jemals über GDM als root anmelden.
Wesley Rice
Guter Punkt. Ich habe nicht vollständig gelesen, was ich dort eingefügt habe.
zcid
Viel einfacher als das ist es, eine Root-Shell mit sudo -s zu aktivieren, wie andere gesagt haben, und viel besser als das Erlernen von sudo, einem viel flexibleren und granulareren Tool als su, wenn es gut verwendet wird.
Adriano Varoli Piazza