La meilleure façon de le faire est de créer une prison chroot pour l'utilisateur. Je vais nettoyer la réponse ici quand je rentrerai à la maison mais j'ai posté la solution sur mon blog.
https://thefragens.com/chrootd-sftp-on-mac-os-x-server/
Vous trouverez ci-dessous la plupart des instructions du post ci-dessus.
Tout d'abord, vous devez créer le nouvel utilisateur dans Admin de groupe de travail et leur attribuer des privilèges d'accès pour SSH via Admin Serveur ou les affecter à un groupe disposant de privilèges d'accès SSH. Une discussion plus approfondie est présentée ci-dessous.
Depuis le terminal, commencez à droite.
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 supplémentaire ajouté sera alors quelque chose dans le sens de ce qui suit.
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 lequel le chemin vers la prison chroot doit appartenir root
. Je ne pense pas que le groupe dans lequel se trouve le dossier importe. Ce que j'ai fait ci-dessus était de
- sauvegarde
/etc/sshd_config
- changer la propriété du répertoire racine en
root
- changer les autorisations du répertoire racine en 755
- créer un dossier chroot
- créer un dossier utilisateur dans le dossier chroot
- créer un dossier dans le dossier utilisateur que l'utilisateur peut modifier
- définir la propriété et les autorisations
Maintenant, modifiez /etc/sshd_config
ce qui 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 que lorsque l'utilisateur se connecte les déposera dans le dossier /chroot/user
, dans ce dossier est un dossier auquel ils peuvent ajouter des choses /chroot/user/scratchpad
.
Si vous souhaitez créer un groupe dans l'administrateur du groupe de travail pour les «utilisateurs Chroot», puis ajoutez les nouveaux utilisateurs que vous avez créés dans l'administrateur du groupe de travail au groupe, vous n'aurez pas à continuer de modifier le /etc/sshd_config
fichier. Au lieu de ce qui précède, ajoutez ce qui suit. Assurez-vous d'ajouter le groupe «Utilisateurs Chroot» à la liste de contrôle d'accès SSH dans Admin Serveur.
Match Group chrootusers
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/%u
Pour tester si ce qui précède fonctionne, émettez ce qui suit à partir du terminal.
$ sftp user@domain.com
Password:
sftp>