Page 1 sur 1

[service] échec pour la vérification d'intégrité du fichier (résolu)

Publié : sam. 09 janv. 2016, 09:57
par bobo
J'ai un message d'erreur au démarrage. Grâce à la commande donnée par benjarobin , je me penche dessus aujourd'hui.

Code : Tout sélectionner

$ systemctl --all --failed
  UNIT           LOAD   ACTIVE SUB    DESCRIPTION
● shadow.service loaded failed failed Verify integrity of password and group files

LOAD   = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB    = The low-level unit activation state, values depend on unit type.

1 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.

Code : Tout sélectionner

$ systemctl status shadow.service
● shadow.service - Verify integrity of password and group files
   Loaded: loaded (/usr/lib/systemd/system/shadow.service; static; vendor preset: disabled)
   Active: failed (Result: exit-code) since sam. 2016-01-09 09:05:19 CET; 50min ago
  Process: 27439 ExecStart=/usr/bin/pwck -r (code=exited, status=2)
 Main PID: 27439 (code=exited, status=2)

janv. 09 09:05:19 sharu systemd[1]: Starting Verify integrity of password and group files...
janv. 09 09:05:19 sharu systemd[1]: shadow.service: Main process exited, code=exited, status=2/INVALIDARGUMENT
janv. 09 09:05:19 sharu systemd[1]: Failed to start Verify integrity of password and group files.
janv. 09 09:05:19 sharu systemd[1]: shadow.service: Unit entered failed state.
janv. 09 09:05:19 sharu systemd[1]: shadow.service: Failed with result 'exit-code'.
janv. 09 09:05:19 sharu pwck[27439]: utilisateur mysql : le répertoire « /var/lib/mysql » n'existe pas
janv. 09 09:05:19 sharu pwck[27439]: pwck : aucun changement
Que puis-je faire pour résoudre ce problème ? Faut-il installer mysql ?

Re: [service] échec pour la vérification d'intégrité du fichier

Publié : sam. 09 janv. 2016, 10:02
par bobo

Code : Tout sélectionner

$ sudo pwck
Mot de passe [sudo] de bobo :
utilisateur mysql : le répertoire « /var/lib/mysql » n'existe pas
pwck : aucun changement

Code : Tout sélectionner

$ grep mysql /etc/passwd
mysql:x:89:89::/var/lib/mysql:/bin/false

Code : Tout sélectionner

$ ls /var/lib
alsa/  colord/     dbus/    ex/         iptables/  logrotate.status  misc/    ntp/        pacman/   rkhunter/  systemd/  transmission/  udisks2/  xkb/
arpd/  container/  dhcpcd/  ip6tables/  krb5kdc/   machines/         netctl/  os-prober/  preload/  sddm/      texmf/    udisks/        upower/ 
mysql fait parti de /etc/passwd, visiblement /var/lib/mysql est le $HOME de cet utilisateur, ce dossier n'existe pas.

Re: [service] échec pour la vérification d'intégrité du fichier

Publié : sam. 09 janv. 2016, 17:36
par benjarobin
Pour éviter d'avoir cette erreur, il suffit de lancer cette commande (donné dans le Wiki)

Code : Tout sélectionner

/usr/bin/mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Re: [service] échec pour la vérification d'intégrité du fichier

Publié : sam. 09 janv. 2016, 18:38
par bobo
Merci beaucoup, effectivement ça se trouve là :
https://wiki.archlinux.org/index.php/MySQL#Installation

Code : Tout sélectionner

$ mysql_install_db
bash: mysql_install_db : commande introuvable

Code : Tout sélectionner

$ sudo mysql_install_db
sudo: mysql_install_db : commande introuvable

Code : Tout sélectionner

$ pkgfile mysql_install_db
extra/mariadb
community/percona-server
Je n'ai pas (plus?) mariadb d'installé sur ma machine. Du coup il faudrait peut-être envisager un suppression de l'utilisateur mysql ? Qu'en penses-tu ?

Re: [service] échec pour la vérification d'intégrité du fichier

Publié : sam. 09 janv. 2016, 18:45
par benjarobin
Je pense que tu as raison. Dans l'idéal il faudrait vérifier avant que aucun fichier n'est avec les droits mysql

Re: [service] échec pour la vérification d'intégrité du fichier

Publié : sam. 09 janv. 2016, 21:20
par bobo
Je viens de lancer un "sudo find / -user mysql" : aucun fichier possédé par mysql

Code : Tout sélectionner

$ id mysql
uid=89(mysql) gid=89(mysql) groupes=89(mysql)

Code : Tout sélectionner

$ grep mysql /etc/group
mysql:x:89:
Du coup je supprime l'utilisateur mysql et le groupe mysql (il n'y a pas d'autre utilisateur affilié au groupe mysql) :

Code : Tout sélectionner

$ sudo userdel -r mysql
userdel : l'emplacement de boîte aux lettres de mysql (/var/spool/mail/mysql) n'a pas été trouvé
userdel : le répertoire personnel de mysql (/var/lib/mysql) n'a pas été trouvé

Code : Tout sélectionner

$ sudo groupdel mysql
groupdel : le groupe « mysql » n'existe pas
Il semblerait que la suppression de l'utilisateur mysql ait supprimé le groupe mysql.

Après redémarrage du service, tout a l'air en ordre :

Code : Tout sélectionner

$ sudo systemctl status shadow
● shadow.service - Verify integrity of password and group files
   Loaded: loaded (/usr/lib/systemd/system/shadow.service; static; vendor preset: disabled)
   Active: inactive (dead) since sam. 2016-01-09 21:16:50 CET; 2s ago
  Process: 29299 ExecStart=/usr/bin/grpck -r (code=exited, status=0/SUCCESS)
  Process: 29297 ExecStart=/usr/bin/pwck -r (code=exited, status=0/SUCCESS)
 Main PID: 29299 (code=exited, status=0/SUCCESS)

janv. 09 21:16:50 sharu systemd[1]: Starting Verify integrity of password and group files...
janv. 09 21:16:50 sharu systemd[1]: Started Verify integrity of password and group files.
Merci beaucoup pour l'aide !