Outils pour utilisateurs

Outils du site


systeme:ssh_chroote

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
systeme:ssh_chroote [2010/01/30 19:38] rootsysteme:ssh_chroote [2010/01/31 11:09] (Version actuelle) root
Ligne 2: Ligne 2:
  
 Une autre doc pour chrooté un utilisateur sur n'importe quelle distri : http://www.lea-linux.org/documentations/index.php/Admin-admin_env-chroot Une autre doc pour chrooté un utilisateur sur n'importe quelle distri : http://www.lea-linux.org/documentations/index.php/Admin-admin_env-chroot
 +
 +<code>
 +#!/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
 +dir=/home/chroot
 +script_login_chroot=/bin/chrootshell
 +
 +echo -e "#!/bin/bash\nexec -c /usr/sbin/chroot $HOME /bin/bash" >> $script_login_chroot
 +
 +chmod +x $script_login_chroot
 +
 +#On rajoute le shellau shells connus
 +if [ `grep $script_login_chroot /etc/shells | wc -l` -lt 1 ] ; then 
 + echo $script_login_chroot >> /etc/shells
 +fi
 +
 +# Utilitaires
 +OUTILB="bash cat grep awk sed ls ln socat"
 +
 +mkdir -p "$dir"
 +
 +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 "$dir/${LOGIN}" \
 +-g "${GROUP}" \
 +-s "$script_login_chroot" \
 +"${LOGIN}"
 +
 +echo "-- Son mot de passe : "
 +passwd "${LOGIN}" > /dev/null
 +
 +echo "-- Création de l'arborescence de son Répertoire personnel --"
 +mkdir -p $dir/${LOGIN}/dev/
 +
 +# Mise en place des droits sur les répertoires
 +cd $dir
 +chmod -R 700 ${LOGIN}
 +
 +# Copie des programmes et de leurs librairies
 +for I in $OUTILB;
 +do
 + bin=`which $I`
 + mkdir -p "`dirname $dir/$LOGIN/$bin`" && cp -aL "$bin" "$dir/$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
 + for lib in `ldd $bin | awk  '{ print $3 }' | grep ^/` `ldd $bin | awk  '{ print $1 }' | grep ^/`
 + do
 + mkdir -p `dirname $dir/$LOGIN/$lib` && cp -aL "$lib" "$dir/$LOGIN/$lib"
 + done
 +done
 +
 +# Création de l'espace /dev
 +mknod $dir/${LOGIN}/dev/null c 1 3 -m 666
 +chown -R "${LOGIN}:${GROUP}" $dir/${LOGIN}
 +
 +# Fin de la création du compte utilisateur.
 +echo ">> Utilisateur \"${LOGIN}\" créée et emprisonné"
 +
 +chmod u+s `which chroot`
 +</code>
 +
 +====== Debian / Ubuntu ======
 +
  
 Nous allons voir comment créer un chroot, afin de “cloisonner” un peu l’environnement de l’utilisateur par rapport au système. Nous allons voir comment créer un chroot, afin de “cloisonner” un peu l’environnement de l’utilisateur par rapport au système.
systeme/ssh_chroote.1264880331.txt.gz · Dernière modification : 2010/01/30 19:38 de root