Projet

Général

Profil

Evolution #1739

Problème de copie des libs dans la prison

Ajouté par Jérémy L. il y a plus de 4 ans. Mis à jour il y a plus de 4 ans.

Statut:
Rejeté
Priorité:
Normal
Assigné à:
-
Début:
04/03/2016
Echéance:
% réalisé:

0%


Description

Si les fichiers "lib" à copier dans la prison sont des liens symboliques, la copie échoue, ex :

cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libc.so.6': No such file or directory
# ll /lib/x86_64-linux-gnu/libc.so.6
lrwxrwxrwx 1 root root 12 Feb 12 01:55 /lib/x86_64-linux-gnu/libc.so.6 -> libc-2.13.so

Une solution est peut-être d'utiliser l'option "-L, --dereference" afin de copier la cible du lien.

chroot-ssh.sh Voir (3,58 ko) Jérémy L., 05/03/2016 12:04

debug_chroot-ssh_bis.log Voir (19,4 ko) Jérémy L., 05/03/2016 12:04

debug_chroot-ssh_bis.1.log Voir (18,8 ko) Jérémy L., 05/03/2016 12:10

Historique

#1 Mis à jour par Benoît S. il y a plus de 4 ans

Jérémy L. wrote:

Si les fichiers "lib" à copier dans la prison sont des liens symboliques, la copie échoue, ex :

[...]

[...]

Une solution est peut-être d'utiliser l'option "-L, --dereference" afin de copier la cible du lien.

Le problème n'est pas sur le lien symbolique je pense, mais plutôt sur le chemin source qui semble être préfixé.
cp: cannot create regular file `/backup/jails/minions // lib/x86_64-linux-gnu/libc.so.6': No such file or directory
Note d'ailleurs le double //.

#2 Mis à jour par Jérémy L. il y a plus de 4 ans

Benoît S. wrote:

Le problème n'est pas sur le lien symbolique je pense, mais plutôt sur le chemin source qui semble être préfixé.
cp: cannot create regular file `/backup/jails/minions // lib/x86_64-linux-gnu/libc.so.6': No such file or directory
Note d'ailleurs le double //.

J'avais pourtant bien lancé le script sans / final (~/evobackup# bash chroot-ssh.sh /backup/jails/minions), donc ça doit être le fonctionnement interne du script.

Je précise (pour Grégory qui a posé la question) que le problème s'est posé sur de nombreux fichiers.

Voici la sortie complète (fait sur autrement-bis, actuellement en Debian 7.9) :

~/evobackup# bash chroot-ssh.sh /backup/jails/minions
Le repertoire /backup/jails/minions existe deja...
1 - Creation de la prison......OK
2 - Copie des donnees..........OK
3 - Copie des binaires...cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libtinfo.so.5': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libdl.so.2': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libc.so.6': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libc.so.6': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libc.so.6': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libselinux.so.1': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libc.so.6': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libdl.so.2': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libc.so.6': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libselinux.so.1': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libc.so.6': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libdl.so.2': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libc.so.6': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libc.so.6': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libblkid.so.1': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libselinux.so.1': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libsepol.so.1': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libmount.so.1': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libc.so.6': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libuuid.so.1': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libdl.so.2': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libacl.so.1': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libpopt.so.0': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libc.so.6': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libattr.so.1': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libwrap.so.0': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libpam.so.0': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libselinux.so.1': No such file or directory
cp: cannot create regular file `/backup/jails/minions//usr/lib/x86_64-linux-gnu/libcrypto.so.1.0.0': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libutil.so.1': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libz.so.1': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libcrypt.so.1': No such file or directory
cp: cannot create regular file `/backup/jails/minions//usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2': No such file or directory
cp: cannot create regular file `/backup/jails/minions//usr/lib/x86_64-linux-gnu/libkrb5.so.3': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libcom_err.so.2': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libc.so.6': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libnsl.so.1': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libdl.so.2': No such file or directory
cp: cannot create regular file `/backup/jails/minions//usr/lib/x86_64-linux-gnu/libk5crypto.so.3': No such file or directory
cp: cannot create regular file `/backup/jails/minions//usr/lib/x86_64-linux-gnu/libkrb5support.so.0': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libkeyutils.so.1': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libresolv.so.2': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libpthread.so.0': No such file or directory
cp: cannot create regular file `/backup/jails/minions//lib/x86_64-linux-gnu/libc.so.6': No such file or directory
......OK
4 - Creation des devices.......OK
5 - Termine.

#3 Mis à jour par Benoît S. il y a plus de 4 ans

Si tu peux relancer avec un bash -x, on aura plus d'infos. Sinon faut qu'on reproduise.

#4 Mis à jour par Benoît S. il y a plus de 4 ans

~/evobackup# bash chroot-ssh.sh /backup/jails/minions

Il manque -n non ? https://forge.evolix.org/projects/evobackup/repository/revisions/master/entry/README_FR.md#L94

#5 Mis à jour par Jérémy L. il y a plus de 4 ans

J'ai exécuté à nouveau le scripts avec bash -x, cf. fichier attaché debug_chroot-ssh_bis.log

Pour l'absence du flag -n ; ça n'est pas une erreur, la version présente sur autrement-bis ne le supporte pas. J'ai joint également le contenu du script pour référence.

Je me suis bien gardé de faire une mise à jour car il y a bien d'autres evobackups envoyés sur ce serveur donc je ne veux rien casser.

#6 Mis à jour par Jérémy L. il y a plus de 4 ans

J'ai corrigé le fichier de log qui contenait des caractères de a session tmux

#7 Mis à jour par Jérémy L. il y a plus de 4 ans

Benoît S. wrote:

Le problème n'est pas sur le lien symbolique je pense, mais plutôt sur le chemin source qui semble être préfixé.
cp: cannot create regular file `/backup/jails/minions // lib/x86_64-linux-gnu/libc.so.6': No such file or directory
Note d'ailleurs le double //.

Effectivement, ça n'est probablement pas l'histoire du lien symbolique.

J'ai "corrigé" le script en l'état pour éviter les doubles // mais ça ne change rien car en fait c'est un dossier intermédiaire qui manque.

Par exemple pour cp -p /lib/x86_64-linux-gnu/libpthread.so.0 /backup/jails/minions/lib/x86_64-linux-gnu/libpthread.so.0 c'est le répertoire /backup/jails/minions/lib/x86_64-linux-gnu qui manque.

Je vois d'ailleurs # TODO : better detection of amd64 arch qui me laisse penser que c'est lié.

#8 Mis à jour par Jérémy L. il y a plus de 4 ans

Jérémy L. wrote:

J'ai "corrigé" le script en l'état pour éviter les doubles // mais ça ne change rien car en fait c'est un dossier intermédiaire qui manque.

Par exemple pour cp -p /lib/x86_64-linux-gnu/libpthread.so.0 /backup/jails/minions/lib/x86_64-linux-gnu/libpthread.so.0 c'est le répertoire /backup/jails/minions/lib/x86_64-linux-gnu qui manque.

Je vois d'ailleurs # TODO : better detection of amd64 arch qui me laisse penser que c'est lié.

En rajoutant ceci dans la partie "1 - Creation de la prison...", ça passe nickel

mkdir -p $chrootdir/lib/x86_64-linux-gnu
mkdir -p $chrootdir/usr/lib/x86_64-linux-gnu

#9 Mis à jour par Gregory C. il y a plus de 4 ans

Jérémy L. wrote:

En rajoutant ceci dans la partie "1 - Creation de la prison...", ça passe nickel

Ceci a été fixé il y a deux ans :

https://forge.evolix.org/projects/evobackup/repository/revisions/839dbdc98ad907d4da278dcc1f0c6454d3a6863b/diff/chroot-ssh.sh

#10 Mis à jour par Jérémy L. il y a plus de 4 ans

Gregory C. wrote:

Ceci a été fixé il y a deux ans :

https://forge.evolix.org/projects/evobackup/repository/revisions/839dbdc98ad907d4da278dcc1f0c6454d3a6863b/diff/chroot-ssh.sh

OK cool et désolé de en pas avoir fait le diff entre la version installée sur le serveur de référence et la version actuelle.

Ça me fait penser qu'avoir une vision plus claire des versions et de la faisabilité d'une mise à jour (en s'appuyant sur SemVer) serait peut-être une bonne chose. À discuter

#11 Mis à jour par Jérémy L. il y a plus de 4 ans

  • Statut changé de Nouveau à Rejeté

#12 Mis à jour par Benoît S. il y a plus de 4 ans

Techniquement pour les mises à jour faut juste git pull…

AMHA, le projet est trop petit et on n'a pas le temps de s'investir pour faire les choses « bien », entre autres des releases (avec une gestion sémantique de version), puisque ça demande un peu plus de temps et d'organisation.

En revanche pour EvoLinux, c'est le cas. (Même si encore une fois, le temps est une problématique).

#13 Mis à jour par Jérémy L. il y a plus de 4 ans

Benoît S. wrote:

Techniquement pour les mises à jour faut juste git pull…

AMHA, le projet est trop petit et on n'a pas le temps de s'investir pour faire les choses « bien », entre autres des releases (avec une gestion sémantique de version), puisque ça demande un peu plus de temps et d'organisation.

Je suis d'accord qu'il ne faut pas mettre en œuvre un bulldozer quand une pelle et une brouette suffisent.

Je me rendrai probablement compte progressivement de comment les choses fonctionnent.

Cependant, ce cas a été l'occasion pour moi d'avoir une expérience d'utilisateur de l'outil et elle n'a pas été très bonne :/ Je n'avais pas trop de moyen de savoir si j devais faire ou pas une mise à jour du script et si une telle mise à jour risquait ou non de compromettre les prisons existantes.

Ça n'est un reproche pour personne, juste un retour d'expérience.

Formats disponibles : Atom PDF