Erreur bash quand je me connecte à mon serveur (/etc/profile)

Hello,

J’ai un serveur sous Debian Jessie et depuis quelques semaines j’ai des erreurs à la connexion SSH et je ne sais pas d’où çà peut bien provenir:

➜  ~ ssh machine
               _
 ___  ___ __ _| | _____      ____ _ _   _
/ __|/ __/ _` | |/ _ \ \ /\ / / _` | | | |
\__ \ (_| (_| | |  __/\ V  V / (_| | |_| |
|___/\___\__,_|_|\___| \_/\_/ \__,_|\__, |
                                    |___/

Welcome on Debian Jessie (GNU/Linux 4.5.7-std-3 x86_64 )

System information as of: Thu Aug  4 09:18:44 CEST 2016

System load:    5.05        Int IP Address:    xxx.xxx.xxx.xxx 
Memory usage:    23.4%        Pub IP Address:    xxx.xxx.xxx.xxx
Usage on /:    22%        Swap usage:    0.0%
Local Users:    0        Processes:    158
Image build:    2016-04-06    System uptime:    1 min
Disk nbd0:    l_ssd 50G
Disk nbd1:    l_ssd 150G

Documentation:    https://scaleway.com/docs
Community:    https://community.scaleway.com
Image source:    https://github.com/scaleway/image-debian

Last login: Thu Aug  4 09:18:15 2016 from xxx.xxx.xxx.xxx
-bash: id: command not found
-bash: [: : integer expression expected

J’ai trouvé que le problème venait de /etc/profile et j’ai donc remplacé “id” par “/usr/bin/id”

if [ "`/usr/bin/id -u`" -eq 0 ]; then
  PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
else
  PATH="/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games"
fi
export PATH

Donc maintenant plus d’erreur mais je pense que la correction n’est pas bonne car quand j’essaye d’utiliser ansible sur mon serveur j’ai une autre erreur:

/bin/sh : mkdir: command not found

Un peu d’aide de votre part pour trouver la réelle source du problème serait super !!!

Merci d’avance.

Puisque c’est du Bash, remplaces, plutôt, par :

if [[ $(/usr/bin/id -u) -eq 0 ]];

Si c’est du shell :

if [ $(/usr/bin/id -u) -eq 0 ];

Merci mais finalement j’ai trouvé la solution par moi même.

Ma solution fonctionnait déjà pour le login mais j’avais encore une erreur avec ansible. La solution n’était pas de corriger /etc/profile que l’on ne doit jamais modifier normalement.

J’ai remis /etc/profile comme avant c’est à dire avec juste "id"
Et j’ai finalement trouvé que le fichier qui posait problème était /etc/environment

JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/"
export PATH=$JAVA_HOME/jre/bin:$PATH

Que j’ai corrigé ainsi :
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre"

Et now tout fonctionne le login en ssh ou via ansible j’ai plus aucun problème.

Merci d’avoir pris le temps de lire mon sujet.

1 J'aime