Chrooter utilisateur - Pas de variable bash?

Bonjour a tous,
J’essaye de chrooter un utilisateur dans son /home mais je rencontre quelques difficultes.

J’utilise le script make_chroot_jail.sh pour me faciliter la tache, cependant je dois avoir un soucis avec le .bashrc car quand je me log, je suis bel et bien chrooter mais je ne vois que “bash4.1:”

Pas de nom d’utilisateur, pas de @server, n’affiche pas l’arborescence via cd, etc…

Une idee de ce qui ne fonctionne pas?

Pour cree l’utilisateur, j’ai effectue la commande:
make_chroot_jail.sh user1 /bin/bash /home/user1
(Qui va en fait creer un /lib /bin /home /home/user1 /src, etc… dans /home/user1)
Son home devient donc /home/user1/home/user1

J’ai l’impression qu’il me faudrait juste faire un lien symbolique quelque part…mais ou xD

Merci de votre aide !

[quote]To create a new chrooted account:

make_chroot_jail.sh /path/to/chroot-shell /path/to/jail

Username is obligatory
filename of the chroot-shell and directory to be used as jail are optional (if one is specified, the other one also has to be specified).

If a user account with this name exists, the script exits with an error-message.

A user account with the name given is created, a chroot-jail is per default created in /home/jail/ which can be used by several chrooted accounts, and the Users’ $HOME is per default set to /home/jail/home/
[/quote]
Est-ce que tu as /home/jail ?
jail= prison.
Dans le script

[quote]

- use one directory (default /home/jail/) as chroot for all users[/quote]

[quote]
echo "To uninstall:"
echo " # userdel $USER"
echo " # rm -rf /home/jail"
echo " (this deletes all Users’ files!)“
echo " # rm -f /bin/chroot-shell"
echo " manually delete the User’s line from /etc/sudoers”[/quote]

[quote=“dudumomo”]
Pas de nom d’utilisateur, pas de @server, n’affiche pas l’arborescence via cd[/quote]

$ whoami

$ ps
$ echo $SHELL

$ echo $PS1

cd / -> cd , comportement attendu du chroot, shell restreint
Quant à essayer “cd …/…/” ou “ls …/…/” pour accéder à /, le comportement attendu d’un shell restreint
est de ne pas les permettre.

Après ces plates remarques techniques, une remarque plus subjective.
Personnellement je refuserais d’utiliser un script pareil si j’avais à choisir. Je préférerais régler chaque chose point par point, savoir faire et défaire chaque réglage séparément sans tout prendre en bloc. Implications trop lourdes sur le système comme par exemple que ce script retouche “sudoers”.

L’esprit de son script résumé, au lieu de régler séparément un shell restreint , un chroot pour ssh … il se propose de tout faire en un script.
Recette que tu peux cuisiner sans produits prédigérés avec des modifications minimes : rbash comme shell et chroot pour ssh et ftp.

Merci etxeberrizahar de tes precisions.

Je fonctionne bien de la sorte avec /home/jail ou bien /home/monuser

Il est evidemment preferable de tout faire a la main et de savoir exactement ce que l’ont souhaite.
Cependant, par simplicite, je prefere utiliser le script.
Il s’agit surtout d’utilisateur de confiance. Je veux juste qu’ils soient chrooter dans le /home (Peu importe en fait des commandes qu’ils ont acces)

Une idee de comment resoudre mon soucis de shell restreint?
Du coup, les utilisateurs ne peuvent meme pas changer de mot de passe. (“Impossible de connaitre le nom d’utilisateur”, ou un truc du genre)

Merci de votre aide a tous.

Up
Si vous avez des idees !

Éditer .bashrc pour bash, .zsh pour zsh …

Il faudrait d’abord identifier le shell que ce script impose.
Tel était le but des commandes
$ ps
et
$ echo $SHELL
Tu pourrais aussi voir le shell de l’utilisateur défini en /etc/passwd.

La commande
$ echo $PS1
avait pour but de voir les réglages de l’invite, du “prompt”.

$ man rbash

RESTRICTED SHELL
       If  bash  is  started  with the name rbash, or the -r option is supplied at invocation, the shell
       becomes restricted.  A restricted shell is used to set up an environment more controlled than the
       standard  shell.  It behaves identically to bash with the exception that the following are disal‐
       lowed or not performed:

       ·      changing directories with cd

       ·      setting or unsetting the values of SHELL, PATH, ENV, or BASH_ENV

       ·      specifying command names containing /

       ·      specifying a file name containing a / as an argument to the .  builtin command

       ·      specifying a filename containing a slash as an argument to  the  -p  option  to  the  hash
              builtin command

       ·      importing function definitions from the shell environment at startup

       ·      parsing the value of SHELLOPTS from the shell environment at startup

       ·      redirecting output using the >, >|, <>, >&, &>, and >> redirection operators

       ·      using the exec builtin command to replace the shell with another command
...

Un shell restreint impose des restrictions. Si tu imposes un shell restreint, il est normal que certaines actions soient entravées.