in welchem kontext hast du das gemacht In einem aktuellen Terminal für die Benutzer Standard-Shell?
jgr208
Haben Sie keine Benutzer in der Sudo-Gruppe?
Rui F Ribeiro
3
tut sudo vipwArbeit?
Rui F Ribeiro
1
@RuiFRibeiro Ja, danke, ich wusste nicht, dass ich die Standard-Root-Shell in dieser Datei ändern konnte
ChiseledAbs
1
In diesem Fall nicht erforderlich. Wenn Sie jedoch versehentlich eine Root-Katastrophe verursacht haben, können Sie den Computer normalerweise in den Einzelbenutzermodus versetzen, das Problem beheben und dann in den Mehrbenutzermodus zurückkehren.
Boardrider
Antworten:
29
Obwohl root keinen Zugriff hat, kann ein Benutzer in der sudo-Gruppe weiterhin privilegierte Befehle ausführen - es scheint, dass der Fehler nicht in sudo, sondern an einer anderen Stelle in der sudo-Gruppe auftritt sudo chsh Befehl vorliegt (z. B. chsh error).
Mit den Befehlen vipw und vigr werden die Dateien / etc / passwd bzw. / etc / group bearbeitet. Mit dem Flag -s bearbeiten sie die Schattenversionen dieser Dateien / etc / shadow bzw. / etc / gshadow. Die Programme setzen die entsprechenden Sperren, um eine Beschädigung der Dateien zu verhindern.
Oder sudo -eführt diese Sperrbearbeitungsfunktion für jede Bearbeitung aus.
Kojiro
16
Eine andere Möglichkeit, vorausgesetzt Sie haben Zugriff auf ein anderes Konto, besteht darin, die Standard-Shell manuell zu überschreiben, indem Sie Folgendes verwenden su --shell=/bin/bash:
-s, --shell = SHELL führe SHELL
aus, wenn / etc / shells dies zulässt
Der Hauptvorteil besteht darin, dass nur Zugriff auf ein anderes Konto erforderlich ist, nicht auf ein anderes privilegiertes Konto .
Aus Sicherheitsgründen werden Anmeldungen, ob in Textform oder grafisch, und Dienstprogramme wie suundsudo , mit denen Sie Befehle als ein anderer Benutzer laufen alle diejenigen Befehl durch das Ziel des Benutzers Shell auszuführen. Wenn die Shell des Zielbenutzers nicht funktionsfähig ist, haben Sie die Ergebnisse gesehen :-(
Sofern Sie nicht zufällig eine noch funktionsfähige Root-Shell haben, die irgendwo ausgeführt wird, oder so etwas wie eine setuid-root-Binärdatei oder etwas, mit dem Sie dies umgehen können, ist ein Neustart und eine Behebung des Problems mithilfe eines Rettungssystems oder eines Live-Images wahrscheinlich die beste Wahl.
Booten Sie das Rettungssystem, hängen Sie das Root-Dateisystem Ihres realen Systems an eine beliebige Stelle /mnt/foound bearbeiten Sie es /mnt/foo/etc/passwd, um die Shell zu reparieren. Speichern, aushängen und fertig.
Neugierig, was passiert, wenn Sie dies tun und die Datei / etc / passwd in einem Hash statt in einfachem Text vorliegt?
jgr208
1
/etc/passwdist nicht Klartext? Ich habe das seit mindestens einem Jahrzehnt nicht mehr gesehen. Ist das auf manchen Systemen noch so? Wie auch immer, chroot /mnt/foo chsh -s /bin/bashkönnte ich den Trick in diesem Fall tun?
Celada
Ich hatte nie das beschriebene Problem, aber ich arbeite mit gesperrten Systemen, die / etc / passwd nicht im Klartext benötigen, um Hacker und solche, die das System gefährden, noch mehr zu vermeiden, wenn sie Zugriff erhalten. Hmm, das könnte funktionieren, sagen wir einfach, ich hoffe, ich muss nie versuchen zu sehen, ob es tatsächlich funktioniert.
jgr208
Ich konnte / etc / passwd mit sudo von einem Benutzerkonto aus bearbeiten. Ich wusste nicht, dass die Shell in dieser Datei definiert ist, danke
ChiseledAbs
@ChiseledAbs oh, du warst? Schön für Sie, dass Sie Ihr Problem gelöst haben. Ich hätte nicht gedacht, dass es dich lassen würde.
Celada
6
Fügen Sie init=/bin/bashIhrer Kernel-Befehlszeile hinzu (wenn Sie mit grub booten, drücken Sie e, um den Boot-Eintrag zu bearbeiten), und Sie haben eine Bash-Shell, die als root ausgeführt wird, ohne auch nur ein Passwort eingeben zu müssen. Ihr Root-Dateisystem wird jedoch wahrscheinlich weiterhin schreibgeschützt bereitgestellt. Sie müssen es also zuerst erneut bereitstellen, bevor Sie die Shell wieder mit ändern können chsh.
sudo vipw
Arbeit?Antworten:
Obwohl root keinen Zugriff hat, kann ein Benutzer in der sudo-Gruppe weiterhin privilegierte Befehle ausführen - es scheint, dass der Fehler nicht in sudo, sondern an einer anderen Stelle in der sudo-Gruppe auftritt
sudo chsh
Befehl vorliegt (z. B. chsh error).Als solches arbeitet Ihr Sudo anscheinend.
Die passwd-Datei kann bearbeitet werden mit:
Und die Root-Shell wurde manuell geändert.
(erste Zeile von
/etc/passwd
normalerweise)Von Mann vipw
quelle
vipw
undvigr
danke! Ich habe immer verwendetsudo vim /etc/passwd
visudo
sudo.ws/man/1.8.15/visudo.man.html interessiert sein , @tacsudo -e
führt diese Sperrbearbeitungsfunktion für jede Bearbeitung aus.Eine andere Möglichkeit, vorausgesetzt Sie haben Zugriff auf ein anderes Konto, besteht darin, die Standard-Shell manuell zu überschreiben, indem Sie Folgendes verwenden
su --shell=/bin/bash
:Der Hauptvorteil besteht darin, dass nur Zugriff auf ein anderes Konto erforderlich ist, nicht auf ein anderes privilegiertes Konto .
quelle
Aus Sicherheitsgründen werden Anmeldungen, ob in Textform oder grafisch, und Dienstprogramme wie
su
undsudo
, mit denen Sie Befehle als ein anderer Benutzer laufen alle diejenigen Befehl durch das Ziel des Benutzers Shell auszuführen. Wenn die Shell des Zielbenutzers nicht funktionsfähig ist, haben Sie die Ergebnisse gesehen :-(Sofern Sie nicht zufällig eine noch funktionsfähige Root-Shell haben, die irgendwo ausgeführt wird, oder so etwas wie eine setuid-root-Binärdatei oder etwas, mit dem Sie dies umgehen können, ist ein Neustart und eine Behebung des Problems mithilfe eines Rettungssystems oder eines Live-Images wahrscheinlich die beste Wahl.
Booten Sie das Rettungssystem, hängen Sie das Root-Dateisystem Ihres realen Systems an eine beliebige Stelle
/mnt/foo
und bearbeiten Sie es/mnt/foo/etc/passwd
, um die Shell zu reparieren. Speichern, aushängen und fertig.quelle
/etc/passwd
ist nicht Klartext? Ich habe das seit mindestens einem Jahrzehnt nicht mehr gesehen. Ist das auf manchen Systemen noch so? Wie auch immer,chroot /mnt/foo chsh -s /bin/bash
könnte ich den Trick in diesem Fall tun?Fügen Sie
init=/bin/bash
Ihrer Kernel-Befehlszeile hinzu (wenn Sie mit grub booten, drücken Siee
, um den Boot-Eintrag zu bearbeiten), und Sie haben eine Bash-Shell, die als root ausgeführt wird, ohne auch nur ein Passwort eingeben zu müssen. Ihr Root-Dateisystem wird jedoch wahrscheinlich weiterhin schreibgeschützt bereitgestellt. Sie müssen es also zuerst erneut bereitstellen, bevor Sie die Shell wieder mit ändern könnenchsh
.quelle
sudo usermod -s /bin/bash jdoe
ändert die Schale von jdoe zu
bash
. Sie können dannsudo egrep jdoe /etc/passwd
überprüfen.quelle