Lain

SFTP

Les répertoires /home/albums et /home/films sont accessibles en sftp pour quelques utilisateurs.

Environnement chrooté pour les utilisateurs

Les utilisateurs faisant partie du groupe sftp-users seront automatiquement chroot à l'intérieur d'un répertoire ~/mount lors de leur connexion.

Match Group sftp-users
        ChrootDirectory %h/mounts
        ForceCommand internal-sftp
        AllowTcpForwarding no
        X11Forwarding no

Accès partagé aux répertoires

Création de l'utilisateur et son environnement

#!/bin/sh
home_dir=/home/sftp/"$1"
useradd --create-home --home "${home_dir}" --groups sftp-users "$1" --shell /bin/false
test -d ${home_dir} || exit 0
chown root ${home_dir}
mkdir "${home_dir}"/mounts
mkdir "${home_dir}"/mounts/films
mkdir "${home_dir}"/mounts/albums
test -d "${home_dir}"/.ssh || sudo -u "$1" mkdir "${home_dir}"/.ssh

Montage des répertoire pour les utilisateurs déclarés

#!/bin/sh

activate() {
    # Ensure the path exists
    test -d $2 || return 1
    # Prevent the mountpoint for being mounted twice or more
    mountpoint $2 && return 1
    mount --rbind $1 $2
}

for dir in /home/sftp/*/mounts
do
     echo ${dir}
     activate /home/mpd/music ${dir}/albums
     activate /home/films ${dir}/films
     activate /home/peer2peer ${dir}/peer2peer
done