logo Debian Debian Debian-France Debian-Facile Debian-fr.org Forum-Debian.fr Debian ? Communautés logo inclusivité

Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).

#1 15-08-2016 15:16:34

Anonyme-13
Invité

Projet et erreur chroot

Bonjour,

Mon projet :

Je souhaite crée un autre utilisateur sur mon serveur qui servira l'intermédiaire pendant une connexion SSH depuis l'extérieur.
Je vous ai reproduit mon projet sous forme de schéma car sa serait compliquer à expliquer smile


WEB < ----- >  Ma_BOX < -- > Mon_Serveur
                                                        |
                                                        |
                                                     SSH ( la connexion SSH par défaut depuis l'extérieur pointe vers l'utilisateur TOTO par un mot de passe )
                                                        |
                                                        |                             
                                            user 1 : TOTO ( l'utilisateur TOTO peut seulement utiliser la commande "su" pour ce connecter vers Utilisateur NONO par un mot de passe )
                                                        |
                                                        |                             
                                            user 2 : NONO (l'utilisateur NONO à les droits non root d'un utilisateur pour administrer le serveur,
                                                        |                       et il se connecte à Mon_PC par SSH sans mot de passe mais avec une clé priver/publique
)
                                                        |                                                                                       
                                                  Mon_PC

Problème :

J'ai suivi ce tuto

Et je n'arrive pas à résoudre le problème du /bin/bash malgré les explications

/usr/sbin/chroot: /bin/bash: No such file or directory

#2 15-08-2016 15:34:21

plop6
Membre
Inscription : 09-03-2016

Re : Projet et erreur chroot

Euh, a quel moment tu le lance ton chroot ? Dans ton shéma c'est pas expliqué ...

Edit 1:
Arf bah faut surtout spécifié le dossier du chroot

chroot   /ton/dossier/de/chroot  /bin/bash



edit 2:   fodrait savoir ou tu en es aussi sur le tuto aussi ..

Dernière modification par plop6 (15-08-2016 15:38:03)

Hors ligne

#3 15-08-2016 17:58:15

Anonyme-13
Invité

Re : Projet et erreur chroot

Après avoir copié les librairies.

#4 15-08-2016 19:53:58

plop6
Membre
Inscription : 09-03-2016

Re : Projet et erreur chroot

bonsoir, j'ai du mal a suivre, aprés avoir copié les librairies du tuto ? lesquelles ?  ça c'est mal passé la copie ? ensuite tu as essayé de te connecté avec ton user TOTO ? c'est ça ?
( essaye de rapatrié toutes les infos pour solutionner ton soucis içi... et détaille un peu plus ce que tu as fais, et ou tu en est )
Merci!
plop6

Hors ligne

#5 16-08-2016 17:39:53

Anonyme-13
Invité

Re : Projet et erreur chroot

Dans le détail :

1

whereis chroot


chroot: /usr/sbin/chroot /usr/share/man/man8/chroot.8.gz



2

ls -l /usr/sbin/chroot


-rwxr-xr-x 1 root root 35432 mars  14  2015 /usr/sbin/chroot



3

chmod u+s /usr/sbin/chroot
ls -l /usr/sbin/chroot


-rwsr-xr-x 1 root root 35432 mars  14  2015 /usr/sbin/chroot



4

useradd -u 1001 -g 1001 -d /home/chroot/toto -s /bin/chroot -c toto


useradd : le groupe « 1001 » n'existe pas


Ça ne fonctionne pas donc j'utilise adduser.

5

adduser --home /home/chroot/toto --shell /bin/chroot toto



6

/usr/sbin/chroot /home/chroot/toto /bin/bash


/usr/sbin/chroot: failed to run command ‘/bin/bash’: No such file or directory


D'après le tuto cette erreur à ce moment là est normale, donc je continue.

7

cd /home/chroot/toto
mkdir bin
cp /bin/bash bin/bash


Pas de soucis ici.

8

ldd /bin/bash


linux-vdso.so.1 (0x00007ffdcdd3b000)
  libncurses.so.5 => /lib/x86_64-linux-gnu/libncurses.so.5 (0x00007f63c9dc2000)
  libtinfo.so.5 => /lib/x86_64-linux-gnu/libtinfo.so.5 (0x00007f63c9b98000)
  libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f63c9994000)
  libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f63c95e9000)
  /lib64/ld-linux-x86-64.so.2 (0x00007f63c9fe7000)



9

mkdir lib
cp /lib/x86_64-linux-gnu/libncurses.so.5 lib
cp /lib/x86_64-linux-gnu/libtinfo.so.5 lib
cp /lib/x86_64-linux-gnu/libdl.so.2 lib
cp /lib/x86_64-linux-gnu/libc.so.6 lib



tree /home/chroot/toto


/home/chroot/toto
├── bin
│   └── bash
└── lib
    ├── libc.so.6
    ├── libdl.so.2
    ├── libncurses.so.5
    └── libtinfo.so.5



10
les erreurs:

ssh toto@127.0.0.1


Permission denied, please try again.



su toto


Impossible d'exécuter /bin/chroot: Aucun fichier ou dossier de ce type


/usr/sbin/chroot /home/chroot/toto /bin/bash



/usr/sbin/chroot: failed to run command ‘/bin/bash’: No such file or directory

#6 16-08-2016 18:20:09

plop6
Membre
Inscription : 09-03-2016

Re : Projet et erreur chroot

Bien c'est très clair là !!
Alors déja pour les erreurs:
en 5 si tu fais:

grep toto /etc/passwd


tu as attribué le shell /bin/chroot à toto; mais

ls -al /bin/chroot


Il n'existe pas.. Du coup ton shell par default est pas bon.
Donc il faut que tu crée /bin/chroot, qui est un script ( Dixit le tuto ):

Voici un exemple :

$ useradd -u 1001 -g 1001 -d /home/chroot/toto -s /bin/chroot -c exemple toto



Notre utilisateur toto se voit attribuer les numéros 1001 d'utilisateur et 1001 de groupe et sera logé dans le répertoire /home/chroot/toto. Le shell qui lui permettra de se connecter est un petit script qui autorise l'emprisonnement de l'utilisateur à son arrivée.

De manière simple, ce script [[ /bin/chroot (l'information qu'ils ont oublié) ]] peut ainsi être écrit :

#!/bin/bash
exec -c /usr/sbin/chroot /home/chroot/$USER /bin/bash



en 10:
Depuis ssh il faudrait vérifier ton fichier sshd_config

grep AllowUsers /etc/ssh/sshd_config

Hors ligne

#7 17-08-2016 08:56:01

Anonyme-13
Invité

Re : Projet et erreur chroot

J'ai recommencé les commandes précédente, je reprends donc apres le 9.

j'ai crée le script :

#!/bin/bash
exec -c /usr/sbin/chroot /home/chroot/$USER /bin/bash


dans /bin/chroot

grep toto /etc/passwd


toto:x:1001:1001:,,,:/home/chroot/toto:/bin/chroot



ls -al /bin/chroot


-rwxr-xr-x 1 root root 66 août  17 09:09 /bin/chroot



toto a bien le script /bin/chroot comme shell, mais j'ai toujours les même code d'erreur.

su toto


/usr/sbin/chroot: failed to run command '/bin/bash': No such file or directory



ssh toto@127.0.0.1


toto@127.0.0.1's password:

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Aug 17 09:16:30 2016 from debflo.home
/usr/sbin/chroot: failed to run command '/bin/bash': No such file or directory
Connection to 127.0.0.1 closed.



J'ai regardé le script sous le tuto :

#!/bin/bash

# On vérifie que le nom de l'utilisateur souhaité est bien passé en paramêtre
if [ "$#" != 1 ];
then
echo "Usage : $0 <login>"
exit 255;
fi

# Nom d'utilisateur
LOGIN=$1
# Groupe attribué à l'utilisateur
GROUP=chroot
# Répertoire par défaut des shell chrootés
REP=/home/chroot

# Utilitaires présents dans /bin
OUTILB="bash cat chmod chown cp grep gunzip gzip ls mkdir more mv rm tar"

echo "-- Création du groupe \"${GROUP}\""
groupadd "${GROUP}" > /dev/null 2>&1

echo "-- Création de l'utilisateur \"${LOGIN}\""
useradd \
-c "Utilisateur en espace restreint" \
-d "/home/${LOGIN}/" \
-g "${GROUP}" \
-s "/bin/chroot" \
"${LOGIN}"

echo "-- Son mot de passe : "
passwd "${LOGIN}" > /dev/null

echo "-- Création de l'arborescence de son Répertoire personnel --"
mkdir -p $REP/${LOGIN}/bin/ $REP/${LOGIN}/lib/ $REP/${LOGIN}/dev/

# Mise en place des droits sur les répertoires
cd $REP
chmod -R 700 ${LOGIN}

# Copie des programmes et de leurs librairies
for I in $OUTILB;
do
cp /bin/$I $REP/${LOGIN}/bin/
# Pour chaque programme, on recherche les librairies correspondantes.
# On termine en demandant l'exécution par bash des lignes renvoyées par awk
ldd /bin/$I | awk -v "LOGIN=$LOGIN" '{ print "cp "$3 $REP"/"LOGIN"/lib/" }' | bash
done

# Création de l'espace /dev
mknod $REP/${LOGIN}/dev/null c 1 3 -m 666
chown -R "${LOGIN}:${GROUP}" $REP/${LOGIN}

# Fin de la création du compte utilisateur.
echo ">> Utilisateur \"${LOGIN}\" créée et emprisonné"

if [ ! -e /bin/chroot ]; then
echo "-- Création du programme /bin/chroot"
cat < /bin/chroot
#!/bin/bash
exec -c /usr/sbin/chroot /home/chroot\$USER /bin/bash
EOF
chmod 555 /bin/chroot
fi



Je n'ai pas trouvé de problème dans le script hormis un mauvais "/" avant $USER, il est plus complet que les commandes précédente.

exec -c /usr/sbin/chroot /home/chroot\$USER /bin/bash
exec -c /usr/sbin/chroot /home/chroot/$USER /bin/bash


Je l'ai donc exécuté :

root@test:~# bash test toto
-- Création du groupe "chroot"
-- Création de l'utilisateur "toto"
-- Son mot de passe :
Entrez le nouveau mot de passe UNIX :
Retapez le nouveau mot de passe UNIX :
passwd : le mot de passe a été mis à jour avec succès
-- Création de l'
arborescence de son Répertoire personnel --
bash: ligne 1: erreur de syntaxe près du symbole inattendu « ( »
bash: ligne 1: `cp  linux-vdso.so.1 (0x00007ffcc57e6000)/toto/lib/'
bash: ligne 1: erreur de syntaxe près du symbole inattendu « ( »
bash: ligne 1: `cp  linux-vdso.so.1 (0x00007ffe35320000)/toto/lib/'

bash: ligne 1: erreur de syntaxe près du symbole inattendu « ( »
bash: ligne 1: `cp  linux-vdso.so.1 (0x00007ffc3dd05000)/toto/lib/'
bash: ligne 1: erreur de syntaxe près du symbole inattendu « ( »
bash: ligne 1: `cp  linux-vdso.so.1 (0x00007ffdec046000)/toto/lib/'

bash: ligne 1: erreur de syntaxe près du symbole inattendu « ( »
bash: ligne 1: `cp  linux-vdso.so.1 (0x00007ffd8d3be000)/toto/lib/'
bash: ligne 1: erreur de syntaxe près du symbole inattendu « ( »
bash: ligne 1: `cp  linux-vdso.so.1 (0x00007fff580bd000)/toto/lib/'

bash: ligne 1: caractère de fin de fichier (EOF) prématuré lors de la recherche du « ' » correspondant
bash: ligne 2: erreur de syntaxe : fin de fichier prématurée
bash: ligne 1: erreur de syntaxe près du symbole inattendu « ( »
bash: ligne 1: `cp  linux-vdso.so.1 (0x00007fffb97a5000)/toto/lib/'

bash: ligne 1: erreur de syntaxe près du symbole inattendu « ( »
bash: ligne 1: `cp  linux-vdso.so.1 (0x00007ffd4513f000)/toto/lib/'
bash: ligne 1: erreur de syntaxe près du symbole inattendu « ( »
bash: ligne 1: `cp  linux-vdso.so.1 (0x00007ffd69b3b000)/toto/lib/'

bash: ligne 1: erreur de syntaxe près du symbole inattendu « ( »
bash: ligne 1: `cp  linux-vdso.so.1 (0x00007fff549d9000)/toto/lib/'
bash: ligne 1: erreur de syntaxe près du symbole inattendu « ( »
bash: ligne 1: `cp  linux-vdso.so.1 (0x00007fff8f3c3000)/toto/lib/'

bash: ligne 1: erreur de syntaxe près du symbole inattendu « ( »
bash: ligne 1: `cp  linux-vdso.so.1 (0x00007ffd08bde000)/toto/lib/'
bash: ligne 1: erreur de syntaxe près du symbole inattendu « ( »
bash: ligne 1: `cp  linux-vdso.so.1 (0x00007fffcb302000)/toto/lib/'

>> Utilisateur "toto" créée et emprisonné
-- Création du programme /bin/chroot
test: ligne 59: /bin/chroot: Aucun fichier ou dossier de ce type
/usr/sbin/chroot: cannot change root directory to /home/chroot$USER: No such file or directory



Je pense que l'erreur est normal, car il y a une librairie de plus qui n'est pas interprété par le script, donc je ne pense pas que cela n'a pas de rapport avec mon soucis.
Par contre,toujours le message d'erreur.
j'ai relancé les deux commandes du début:

grep toto /etc/passwd


toto:x:1001:1001:Utilisateur en espace restreint:/home/toto/:/bin/chroot


j'ai édité le fichier /etc/passwd pour changer :

toto:x:1001:1001:Utilisateur en espace restreint:/home/toto/:/bin/chroot


en

toto:x:1001:1001:Utilisateur en espace restreint:/home/chroot/toto/:/bin/chroot


mais toujours le même message... je ne sais plus quoi faire là..
Et pour le ssh, idem

toto@127.0.0.1's password:

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
/usr/sbin/chroot: failed to run command '/bin/bash': No such file or directory
Connection to 127.0.0.1 closed.



Merci du temps que tu me consacre au passage.

Dernière modification par Anonyme-13 (17-08-2016 08:57:58)

#8 17-08-2016 10:45:20

plop6
Membre
Inscription : 09-03-2016

Re : Projet et erreur chroot

Alors pour le ssh que te renvoie:

grep AllowUsers /etc/ssh/sshd_config



Pour le /bin/bash no such file:

ls -al /home/chroot/toto/bin/bash


echo $PATH


echo $HOME


Laisse la valeur par default ( celle du tuto) dans le fichier /etc/passwd

toto:x:1001:1001:,,,:/home/chroot/toto:/bin/chroot

Hors ligne

Pied de page des forums