Ich habe einen Root-Server, bei dem ich die Anmeldung über den Benutzer root deaktiviert habe und einen anderen Benutzer in der sudoer-Liste erstellt habe. Wenn ich also auf dem Server arbeiten will, mache ich:
%Vor%Auf dem Server:
%Vor% Geben Sie mein Passwort ein, um die Root-Rechte zu erhalten. Das hat 6 Monate lang gut funktioniert. Heute bekomme ich diese Nachricht, wenn ich sudo su:
Was passiert mit dem Hack? Was bedeutet dieser Fehler und warum bekomme ich ihn? Ohne Root-Rechte kann ich nicht so viel auf dem Server tun. Irgendeine Idee, wie Sie das beheben können?
sudo
versucht, /dev/tty
für Lese- / Schreibzugriff zu öffnen, und druckt diesen Fehler aus, wenn es fehlschlägt. Sie haben in Kommentaren angegeben, dass / dev / tty auf Ihrem System fehlt.
Sudo hat eine Option -S
, um das Passwort von der Standardeingabe anstelle von / dev / tty zu lesen. Sie sollten sudo -S
ausführen können, um root zu werden.
In Bezug auf die Wiederherstellung von / dev / tty ist es möglich, dass ein Neustart des Servers ausreichend ist; Das System könnte während des Bootvorgangs alle Geräte in / dev neu erstellen. Um ein Gerät zu erstellen, verwenden Sie alternativ den Befehl mknod
, aber Sie müssen die korrekten Haupt- und Nebennummern für das tty-Gerät kennen. Auf einem Ubuntu-System, das ich zur Verfügung habe, sehe ich diese Einträge in / dev:
In diesem Fall ist die Major-Nummer 5 und die Minor-Nummer ist 0. / dev / console und / dev / ptmx haben dieselbe Major-Nummer. Also würde ich / dev / console oder / dev / ptmx inspizieren, um die richtige Major-Nummer zu finden, und dann ausführen:
%Vor%wobei "major" die richtige Hauptnummer ist.
Stellen Sie nach dem Erstellen von / dev / tty sicher, dass die Berechtigungen korrekt sind:
%Vor% Es schlägt fehl, weil sudo
versucht, ein root-Passwort einzugeben, und es wird kein Pseudo-tty zugewiesen.
Sie müssen sich entweder als root anmelden oder die folgenden Regeln in Ihrem /etc/sudoers
(oder: sudo visudo
) einrichten:
Stellen Sie dann sicher, dass Ihr Benutzer zu admin
group (oder wheel
) gehört.
Idealerweise (sicherer) wäre es, Root-Rechte nur auf bestimmte Befehle zu beschränken, die als %admin ALL=(ALL) NOPASSWD:/path/to/program