Evolution #1739
Problème de copie des libs dans la prison
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.
Historique
#1 Mis à jour par Benoît S. il y a presque 9 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 presque 9 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 presque 9 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 presque 9 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 presque 9 ans
- Fichier chroot-ssh.sh Voir ajouté
- Fichier debug_chroot-ssh_bis.log Voir ajouté
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 presque 9 ans
- Fichier debug_chroot-ssh_bis.1.log Voir ajouté
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 presque 9 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 presque 9 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 presque 9 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 :
#10 Mis à jour par Jérémy L. il y a presque 9 ans
Gregory C. wrote:
Ceci a été fixé il y a deux ans :
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 presque 9 ans
- Statut changé de Nouveau à Rejeté
#12 Mis à jour par Benoît S. il y a presque 9 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 presque 9 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.