La mejor manera de hacer esto es crear un entorno chroot jail para el usuario. Voy a limpiar la respuesta aquí cuando llego a casa, pero ya he publicado la solución en mi blog.
http://thefragens.com/blog/2011/12/chrootd-sftp-on-mac-os-x-server/
A continuación están la mayor parte de la instrucción del post anterior.
En primer lugar, usted debe crear el nuevo usuario en el Grupo de trabajo de Administración y, o bien asignar privilegios de acceso por SSH a través del Servidor de Administración o asignarlos a un grupo que tiene acceso SSH privilegios. La discusión más abajo.
Desde el Terminal, de inicio a la derecha.
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
Cada nuevo usuario que se agrega entonces será algo a lo largo de las líneas de la siguiente.
sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2
Cada carpeta de la ruta de la cárcel chroot debe ser propiedad de root
. Creo que no importa en qué grupo de la carpeta. Lo que hice anteriormente fue
- copia de seguridad
/etc/sshd_config
- cambiar la propiedad de la root del directorio
root
- cambiar los permisos del directorio root a 755
- crear una carpeta chroot
- crear una carpeta de usuario en el entorno chroot carpeta
- crear una carpeta dentro de la carpeta de usuario que el usuario puede modificar
- establezca la propiedad y los permisos
Ahora a editar /etc/sshd_config
para el siguiente.
#Subsystem sftp /usr/libexec/sftp-server
Subsystem sftp internal-sftp
Match User user
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/user
Esto crea un entorno chroot jail que cuando el usuario inicia sesión en la voluntad de soltar en la carpeta /chroot/user
, en que carpeta es una carpeta que se pueden añadir cosas a /chroot/user/scratchpad
.
Si desea crear un Grupo de Administración de Grupo para 'Chroot de los Usuarios, a continuación, agregue los nuevos usuarios creados en Administración de Grupo para el Grupo de no tener que seguir edición de la /etc/sshd_config
archivo. En lugar de la anterior, añadir el siguiente. Asegúrese de añadir el 'Chroot grupo de Usuarios para el acceso SSH ACL en el Servidor de Administración.
Match Group chrootusers
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
ChrootDirectory /chroot/%u
Para probar si el de arriba es de trabajo, emitir la siguiente desde la terminal.
$ sftp user@domain.com
Password:
sftp>