Le système d'exploitation GNU-Linux/Erreurs connues

Un livre de Wikilivres.

Messages d'erreurs avec solutione connue.

E667: Fsync failed[modifier | modifier le wikicode]

Le fichier est corrompu pour "vim" suite à une modification, mais pas pour les autres éditeurs. En utilisant donc un pour le ravoir.

mount.nfs: mount point /mnt/public does not exist[modifier | modifier le wikicode]

Lancer : mkdir /mnt/public avant le montage.

Please install all available updates for your release before upgrading[modifier | modifier le wikicode]

sudo apt update && sudo apt full-upgrade && sudo apt update && sudo do-release-upgrade

Si ça ne suffit pas, désinstaller les paquets listés avec :

apt list --upgradable

This account is currently not available[modifier | modifier le wikicode]

Par exemple pour lancer un processus en tant que www-data :

su - www-data -s /bin/bash -c 'pwd'

Nagios[modifier | modifier le wikicode]

  • Les erreurs du serveur peuvent être obtenues avec tail /usr/local/nagios/var/nagios.log.
  • Celles du client Windows dans C:\Program Files\NSClient++\nsclient.log (si configuré dans le nsclient.ini).

connect to address 127.0.0.1 and port 12489: Connexion refusée[modifier | modifier le wikicode]

Si le pare-feu est déjà ouvert à Nagios ou au port 12489, et si C:\Program Files\NSClient++\nsc.ini autorise déjà l'IP du serveur Nagios, et que le processus nscp.exe est bien lancé, c'est peut être qu'avec Nagios 4 il faut utiliser C:\Program Files\NSClient++\nsclient.ini.

Normalement ensuite un telnet 127.0.0.1 12489 depuis le client fonctionne.

Erreurs sur /usr/local/nagios/var/spool/checkresults[modifier | modifier le wikicode]

Ex :

Error in configuration file '/usr/local/nagios/etc/nagios.cfg' - Line 452 (Check result path '/usr/local/nagios/var/spool/checkresults' is not a valid directory)
Error: Unable to write to check_result_path ('/usr/local/nagios/var/spool/checkresults') - Permission denied

En effet, /usr/local/nagios/var/spool/checkresults est nécessaire au lancement du processus Nagios 4, et peut être créé manuellement à cet effet :

mkdir /usr/local/nagios/var/spool/
mkdir /usr/local/nagios/var/spool/checkresults/
chown nagios /usr/local/nagios/var/spool/checkresults
chgrp nagios /usr/local/nagios/var/spool/checkresults

Error: Could not open command file '/usr/local/nagios/var/rw/nagios.cmd' for update![modifier | modifier le wikicode]

Si depuis le portail web on ne peut pas planifier de maintenance à cause de cette erreur, alors que les permissions du fichier semblaient correctes, il faut modifier le fichier suivant[1] :

vim /etc/init.d/nagios

Rechercher la ligne démarrant par "chown $NagiosUser:$NagiosGroup $NagiosRunFile", puis ajouter en dessous :

sleep 10
chmod 666 /usr/local/nagios/var/rw/nagios.cmd
/etc/init.d/nagios restart

Internal Server Error[modifier | modifier le wikicode]

Si la page d'accueil fonctionne mais pas les vues monitoring, c'est certainement que le CGI n'arrive pas à s'exécuter.

Parfois l'erreur est notée plus clairement : You don't have permission to access /cgi-bin/nagios3/status.cgi on this server.

It appears as though you do not have permission to view information for any of the services you requested[modifier | modifier le wikicode]

Dans l'interface web, passer "use_authentication=1" à 0 dans cgi.cfg.

Kernel panix[modifier | modifier le wikicode]

Peut se produire si la RAM est insuffisante (ex : < 512 Mo sur Ubuntu 16.04).

Network Unreachable[modifier | modifier le wikicode]

Si le serveur Nagios ping une machine qui fonctionne, mais qu'elle y apparait comme injoignable, c'est à cause de la différence entre le ping IPv4 et le ping6. Il faut juste modifier le check-host-alive de command.cfg en ajoutant "-4" à la fin :

define command{
        command_name    check-host-alive
        command_line    $USER1$/check_ping -H $HOSTADDRESS$ -w 3000.0,80% -c 5000.0,100% -4
}

NSClient - ERROR: Could not get data for 5 perhaps we don't collect data this far back?[modifier | modifier le wikicode]

Un reboot du service ne change rien, il faut redémarrer l'OS.

NSClient - ERROR: Could not get value[modifier | modifier le wikicode]

Idem que ci-dessus.

NSClient - ERROR: Failed to get PDH valuee[modifier | modifier le wikicode]

Idem que ci-dessus.

NSClient - ERROR: Invalid password[modifier | modifier le wikicode]

Sur le client Windows, modifier dans C:\Program Files\NSClient++\NSC.ini, la ligne password=, afin qu'il corresponde à celui définit sur le serveur, dans /usr/local/nagios/etc/objects/resource.cfg à la ligne $USER4$=. Ou vice-versa.

Sinon réinstaller le client, sa version n'est peut-être plus à jour.

Si la commande suivante fonctionne depuis le serveur, c'est qu'il faut compléter commands.cfg :

/usr/local/nagios/libexec/check_nt -H Mon_IP_Cliente -v USEDDISKSPACE -p 12489 -l c -s Mon_Mot_De_Passe

Status UNKNOWN, Status Information Utilisation:[modifier | modifier le wikicode]

La connexion au client Nagios fonctionne, mais le statut est flou : il faut réinstaller et reconfigurer Nagios client (problème de version avec le serveur incompatible).

Warning: Host 'xxx' has no default contacts or contactgroups defined![modifier | modifier le wikicode]

Survient dans les logs au lancement de Nagios pour avertir qu'en cas d'alerte sur la machine mentionnée, personne ne sera prévenu.

Pour y remédier, vérifier la ligne contact_groups dans template.cfg :

define host{
 name                    xxx
 contact_groups          admins
 ...
}

Nginx[modifier | modifier le wikicode]

Logs[modifier | modifier le wikicode]

tail /var/log/nginx/error.log

Flusher le cache des redirections 301[modifier | modifier le wikicode]

Dans les .conf[2] :

proxy_cache_valid any 0m;

Flusher le cache DNS[modifier | modifier le wikicode]

sudo systemd-resolve --flush-caches

Messages d'erreur[modifier | modifier le wikicode]

413 Request Entity Too Large[modifier | modifier le wikicode]

Dans nginx.conf, augmenter la valeur :

client_max_body_size 100M;

504 timeout[modifier | modifier le wikicode]

http {
    fastcgi_read_timeout 300;
    proxy_read_timeout 300;
    proxy_connect_timeout 300;
    proxy_send_timeout 300;
}

Access to fetch at 'https://example.com' from origin 'http://example.fr' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains multiple values[modifier | modifier le wikicode]

Dans le vhost, retirer la clause suivante (car elle se retrouve en double chez le client) :

Access-Control-Allow-Origin:

Blocage d’une requête multiorigines (Cross-Origin Request) : la politique « Same Origin » ne permet pas de consulter la ressource distante située sur https://example.com. Raison : le recours à plusieurs en-têtes CORS « Access-Control-Allow-Origin » n’est pas autorisé.[modifier | modifier le wikicode]

add_header 'Access-Control-Allow-Origin' '*';

Si l'erreur survient sur Firefox et pas Chrome : remplacer l'étoile par les domaines d'origine.

closed keepalive connection[modifier | modifier le wikicode]

Ce n'est pas à proprement parler une erreur, mais une notification normale.

Connection refused[modifier | modifier le wikicode]

Il manque l'activation du site (ln -s /etc/nginx/sites-available/... /etc/nginx/sites-enabled).

directory index of "/var/www/mon_site/" is forbidden, client: 172.170.0.1, server: example.com, request: "GET / HTTP/1.1", host: "example.com"[modifier | modifier le wikicode]

Si le dossier est bien accessible en shell, il faut remplacer dans le vhost :

location / {
  try_files $uri $uri/ /index.html index.php;
}

par :

location / {
  try_files $uri /index.html index.php;
}

FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream ou Nginx propose de télécharger le fichier d'index au lieu de l'exécuter[modifier | modifier le wikicode]

Ajouter au vhost concerné le nom de son fichier d'index (et vérifier qu'il existe et est accessible avec l'utilisateur du serveur web) :

index index.php app.php;

Sinon, remplacer le fastcgi_param SCRIPT_FILENAME. Ex :

fastcgi_param: SCRIPT_FILENAME $document_root$fastcgi_script_name;

par :

fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;

Dans Symfony cela peut survenir quand on utilise le vhost de la version 4 (public/index.php) sur la 3 (web/app.php ou app_dev.php).

fastcgi_pass[modifier | modifier le wikicode]

connect() failed (111: Connection refused) while connecting to upstream, client: 172.170.0.1, server: example.com, request: "GET / HTTP/1.1", upstream: "fastcgi://172.170.0.11:9000", host: "example.com"[modifier | modifier le wikicode]

Remplacer dans le vhost :

 fastcgi_pass unix:/run/php/7.3-default.sock;

par :

 fastcgi_pass php7.3-fpm:9000;
host not found in upstream "php73-fpm" ou php7.3-fpm could not be resolved ou Failed at step EXEC spawning /usr/lib/php/php-fpm-socket-helper: No such file or directory[modifier | modifier le wikicode]

Changer le vhost concerné vers unix:/var/run/php/php7.3-fpm.sock.

connect() to unix:/var/run/php/php7.3-fpm.sock failed (2: No such file or directory) while connecting to upstream[modifier | modifier le wikicode]

Généralement assorti de "502 Bad Gateway" dans le navigateur.

Installer php7.3-fpm ou changer le vhost vers fastcgi_pass php7.3-fpm:9000;.

File not found[modifier | modifier le wikicode]

Vérifier les logs Nginx, cela peut être dû à "Permission denied". Si un chmod ne résout pas le problème, recloner l'appli.

Si ça survient à chaque relance, ça vient peut-être de Git : Git/Débogage#File_mode_changed_from_100644_to_100755.

no resolver defined to resolve php73-fpm[modifier | modifier le wikicode]

Ajouter dans nginx.conf :

resolver 127.0.0.1;

pread() / pwrite() "/etc/nginx/conf.d/default.conf" failed (38: Function not implemented)[modifier | modifier le wikicode]

Relancer Docker Desktop.

"ssl_stapling" ignored, issuer certificate not found[modifier | modifier le wikicode]

Modifier le vhost : changer de certificat ou ajouter :

ssl_stapling off;

upstream timed out (110: Connection timed out) while reading response header from upstream, upstream: "fastcgi://unix:/var/run/php/php7.3-fpm.sock"[modifier | modifier le wikicode]

Relancer le processus php7.3-fpm.

Postfix[modifier | modifier le wikicode]

421 Server Busy Error[modifier | modifier le wikicode]

Trouver le goulet d'étranglement avec qshape.

451 4.3.0 Temporary lookup failure[modifier | modifier le wikicode]

Sinon, recopier le main.cf ci-dessus.

454 4.7.1 Relay access denied / relaying denied[modifier | modifier le wikicode]

  • Commenter le bridage par adresses réseaux dans /etc/postfix/main.cf :
mynetworks =
  • Sinon, vérifier que le domaine du destinataire figure bien dans /etc/postfix/main.cf :
mydestination =
  • Sinon, dans /etc/postfix/main.cf, le paramètre virtual_mailbox_domains est vide[3].
  • Sinon, ajouter ou modifier les lignes suivantes à /etc/postfix/main.cf :
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
  • Sinon, recopier le main.cf ci-dessus.

Logo

Lors des tests, ne pas commenter relayhost = pendant plus d'une heure sous peine de devenir spammeur à son insu.

501 5.1.7 Bad sender address syntax[modifier | modifier le wikicode]

Modifier l'adresse de l'expéditeur (ex : dans les options Squirrel).

550 relay not permitted / Sender verify failed[modifier | modifier le wikicode]

Vérifier le reverse DNS.

550 unknown recipient / 550 5.1.1: Recipient address rejected: User unknown in local recipient table[modifier | modifier le wikicode]

Le domaine ou sa boite mail n'est pas installé sur le MX.

S'il s'agit bien d'un utilisateur local, créer un alias d'une boite existante.

Sinon, si le serveur MX distant fonctionne par ailleurs, commenter dans /etc/postfix/main.cf :

mydestination =

Et relancer postfix.

Connection closed by foreign host / ou aucune commande ne répond après la connexion au SMTP[modifier | modifier le wikicode]

Si le serveur s'arrête immédiatement après son lancement, certaines erreurs sont visibles dans les logs. Sinon, recopier le main.cf ci-dessus.

dsn=4.4.1, status=deferred[modifier | modifier le wikicode]

Si les emails fonctionnent en local, mais pas depuis l'extérieur (avec la même adresse d'expéditeur), et qu'ils ne sont pas visibles dans

tail -30 /var/log/mail.log

Retester en ouvrant le port SMTP du pare-feu :

iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT

Ou sinon en ouvrant tous les ports :

#!/bin/sh
echo "Flushing iptables rules..."
sleep 1
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

dsn=5.4.6, status=bounced (mail for mail.mondomaine.fr loops back to myself)[modifier | modifier le wikicode]

  • Le paramètre mydestination n'est pas bien définit.
  • Le domaine est inactif dans la table MySQL[4]

Erreurs Dovecot[modifier | modifier le wikicode]

Error: Invalid settings in userdb[modifier | modifier le wikicode]

Survient quand on se connecte par exemple au webmail en root. Cette protection incite à utiliser un autre compte, la solution la plus simples est de définir un alias dans pour root dans /etc/aliases.

Si cela survient alors qu'un alias existait déjà, il suffit de relancer newaliases pour réparer.

Error: stat(/home/postmaster/Maildir/tmp) failed: Permission denied[modifier | modifier le wikicode]
chmod -R 777 /home/postmaster/Maildir/

Erreurs fetchmail[modifier | modifier le wikicode]

Les symptômes suivants sont liés à la même erreur fetchmail :

  • POP3 : Erreur de login ou d'identification inconnue / erreur socket durant la réception
  • IMAP : Connexion refusée / Échec de l'autorisation
  • SMTP : The recipient server did not accept our requests to connect. Socket error

Pour déboguer, utiliser la commande :

fetchmail -v

Sinon, bien vérifier que l'utilisation et le mot de passe sont entre guillemets dans :

vim ~/.fetchmailrc

Et le chemin vers le programme dans :

vim ~/.forward

Les retours de mails sont visibles dans :

ls -alh /var/lib/fetchmail/Maildir/new

ou :

ls -alh /home/user/Maildir/new

Erreurs procmail[modifier | modifier le wikicode]

Mails perdus / delivered to command: procmail -a "$EXTENSION" / delivered to command: IFS=' '&&exec /usr/bin/procmail -f-||exit 75 #user[modifier | modifier le wikicode]

Si les logs montrent que les mails sont bien envoyés, mais restent introuvables par ailleurs, vérifier la boite système via :

procmail -v

Si cela commence par /var/mail/, les emails perdus sont probablement tous dans le fichiers :

cat /var/mail/nobody

Pour les router vers les boites des utilisateurs, revoir la configuration des .forward et .procmailrc ci-dessus, jusqu'à voir les nouveaux dans :

ls -alh /home/user/Maildir/new

Unable to connect to remote host: Connection refused[modifier | modifier le wikicode]

/etc/init.d/postfix start

ou si les logs donnent :

NO [AUTHENTICATIONFAILED] Authentication failed.

alors réinstaller.

unknown key version / dkim=temperror (no key for signature)[modifier | modifier le wikicode]

Lorsqu'on envoie par webmail, il faut qu'un logiciel insère automatiquement la signature DKIM dans chaque courrier sortant. C'est pourquoi il faut installer OpenDKIM[5].

Lorsqu'il redémarre, le syslog peut indiquer des erreurs de permissions sur la clé qu'il faut corriger :

 /etc/init.d/opendkim restart
 tail /var/log/syslog
 chown opendkim /etc/ssl/private/dkim.key
 chmod 700 /etc/ssl/private/dkim.key

warning: cannot get RSA private key from file: nomdedomaine.fr.key disabling TLS support[modifier | modifier le wikicode]

Ceci apparait dans mail.log quand on chiffre la clef privée avec un mot de passe. Il ne faut donc pas en mettre.

warning: connect #1 to subsystem private/proxymap: Connection refused[modifier | modifier le wikicode]

Il manque la ligne dans master.cf :

proxymap  unix  -       -       n       -       -       proxymap


Références[modifier | modifier le wikicode]