La meilleure façon de faire cela est de créer une prison chroot pour l'utilisateur. Je vais nettoyer la réponse ici quand je serai rentré chez moi, mais j'ai posté la solution sur mon blog.
https://thefragens.com/chrootd-sftp-on-mac-os-x-server/
Voici la plupart des instructions de l'article ci-dessus.
Tout d'abord, vous devez créer le nouvel utilisateur dans Workgroup Admin et leur attribuer des droits d'accès SSH via Server Admin ou les attribuer à un groupe qui a des privilèges d'accès SSH. Plus de discussions ci-dessous.
Depuis le Terminal, commencez correctement.
sudo cp /etc/sshd_config /etc/sshd_config.bkup
sudo chown root /
sudo chmod 755 /
sudo mkdir -p /chroot/user/scratchpad
sudo chown -R root /chroot
sudo chown user /chroot/user/scratchpad
sudo chmod -R 755 /chroot
Chaque nouvel utilisateur ajouté sera alors quelque chose du genre suivant.
sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2
Chaque dossier dans le chemin de la prison chroot doit appartenir à root
. Je ne pense pas que le groupe du dossier ait de l'importance. Ce que j'ai fait ci-dessus était de
- faire une sauvegarde de
/etc/sshd_config
- changer la propriété du répertoire racine en
root
- modifier les autorisations du répertoire racine en 755
- créer un dossier chroot
- créer un dossier utilisateur à l'intérieur du dossier chroot
- créer un dossier à l'intérieur du dossier utilisateur que l'utilisateur peut modifier
- définir la propriété et les autorisations
Maintenant, pour modifier /etc/sshd_config
comme suit.
#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp internal-sftp
Match User user
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/user
Cela crée une prison chroot qui, lorsque l'utilisateur se connecte, les déposera dans le dossier /chroot/user
, dans ce dossier se trouve un dossier où ils peuvent ajouter des choses /chroot/user/scratchpad
.
Si vous souhaitez créer un groupe dans Workgroup Admin pour les 'Chroot Users' puis ajouter les nouveaux utilisateurs que vous avez créés dans Workgroup Admin au groupe, vous n'aurez pas à continuer à modifier le fichier /etc/sshd_config
. Au lieu de ce qui précède, ajoutez ce qui suit. Assurez-vous d'ajouter le groupe 'Chroot Users' à la liste d'accès SSH dans Server Admin.
Match Group chrootusers
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/%u
Pour tester si ce qui précède fonctionne, lancez la commande suivante depuis le terminal.
$ sftp user@domain.com
Mot de passe :
sftp>