GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Was ist der MySQL-Benutzer debian-sys-maint (und mehr)?

Lösung 1:

Wofür wird debian-sys-maint verwendet?

Eine wichtige Sache, für die es verwendet wird, ist, dem Server zu sagen, dass er die Protokolle rollen soll. Es benötigt mindestens das Recht zum Neuladen und Herunterfahren.

Siehe die Datei /etc/logrotate.d/mysql-server

Es wird von /etc/init.d/mysql verwendet Skript, um den Status des Servers abzurufen. Es wird verwendet, um den Server ordnungsgemäß herunterzufahren/neu zu laden.

Hier ist das Zitat aus README.Debian

* MYSQL WON'T START OR STOP?:
=============================
You may never ever delete the special mysql user "debian-sys-maint". This user
together with the credentials in /etc/mysql/debian.cnf are used by the init
scripts to stop the server as they would require knowledge of the mysql root
users password else.

Wie kann ich es am einfachsten wiederherstellen, nachdem ich es verloren habe?

Der beste Plan ist, es einfach nicht zu verlieren. Wenn Sie das Passwort wirklich verlieren, setzen Sie es mit einem anderen Konto zurück. Wenn Sie alle Administratorrechte auf dem MySQL-Server verloren haben, befolgen Sie die Anleitungen zum Zurücksetzen des Root-Passworts und reparieren Sie dann debian-sys-maint .

Sie könnten einen Befehl wie diesen verwenden, um eine SQL-Datei zu erstellen, die Sie später verwenden können, um das Konto neu zu erstellen.

mysqldump --complete-insert --extended-insert=0 -u root -p mysql | grep 'debian-sys-maint' > debian_user.sql

Ist das Passwort in/etc/mysql/debian.cnf bereits gehasht

Das Passwort wird bei der Installation nicht gehasht/verschlüsselt, aber neue Versionen von mysql haben jetzt eine Möglichkeit, die Anmeldeinformationen zu verschlüsseln (siehe:https://serverfault.com/a/750363).

Lösung 2:

Die debian-sys-maint user ist standardmäßig ein Root-Äquivalent . Es wird von bestimmten Wartungsskripten auf Debian-Systemen verwendet und ermöglicht als Nebeneffekt Benutzern mit Root-Zugriff auf die Box, das Klartext-Passwort in /etc/mysql/debian.cnf anzuzeigen (gut oder schlecht?)

Sie können den Benutzer wie folgt neu erstellen:

GRANT ALL PRIVILEGES on *.* TO `debian-sys-maint`@`localhost` IDENTIFIED BY 'your password' WITH GRANT OPTION;

Stellen Sie einfach sicher, dass das Passwort übereinstimmt das in /etc/mysql/debian.cnf

Lösung 3:

Sie könnten auch:

sudo dpkg-reconfigure mysql-server-5.0

Dadurch haben Sie die Möglichkeit, den Benutzer debian-sys-maint neu zu erstellen. Bestehende Benutzer und Datenbanken sind sicher.

Lösung 4:

Ich wollte nur kommentieren, aber ich denke korrekte Syntax verdient einen eigenen Eintrag. Dadurch wird debian-sys-maint erstellt Benutzer:

mysql> GRANT ALL PRIVILEGES on *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'plaintextpassword' WITH GRANT OPTION; FLUSH PRIVILEGES;

Wenn Sie noch die Datei /etc/mysql/debian.cnf haben, verwenden Sie einfach das Passwort darin.

Fühlen Sie sich frei, sich einen paranoideren auszudenken sichere Lösung.

Lösung 5:

Wenn Sie den debian-sys-maint hinzufügen müssen Benutzer nur für logrotate.d Zwecke, sollten Sie nicht gewähren Sie ALL PRIVILEGES oder die GRANT OPTION -- das ist eine unnötige riesige Sicherheitslücke. Stattdessen können Sie den Benutzer einfach mit dem RELOAD hinzufügen Privileg wie dieses (vorausgesetzt, Sie greifen auf Ihre Datenbank als root zu , und Sie ersetzen xxxxxx durch Ihr Passwort)

# add the user with the reload right
GRANT RELOAD on *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'xxxxxx'; 

# reload the rights
FLUSH PRIVILEGES;

# double check
select * from mysql.user;

Aktualisierung 2019

Diese Antwort ist möglicherweise veraltet -- bitte lesen Sie die stark eigensinnigen Kommentare unten.


Linux
  1. Die Top 20 Leitfäden und Tutorials für Systemadministratoren

  2. So ändern Sie das MySQL-Root-Passwort

  3. Was ist das Standardpasswort des Bildschirms?

  4. Was ist der Unterschied zwischen „passwd“ und „chpasswd“?

  5. Was ist der debian-+ Benutzer?

Was ist der Unterschied zwischen InnoDB und MyISAM?

Was ist der Unterschied zwischen Linux und Unix?

Wie füge ich eine MySQL-Datenbank und einen MySQL-Datenbankbenutzer auf Plesk hinzu?

Useradd vs. Adduser:Was ist der Unterschied?

Was ist ein Hypervisor? Was ist der Unterschied zwischen Typ 1 und 2?

Was ist der Unterschied zwischen Curl und Wget?