SFTP: enlaces simbólicos de archivos en un directorio encarcelado (chrooted)

22

Estoy tratando de configurar sftp para que algunas personas de confianza puedan acceder / editar / crear algunos archivos. He encarcelado a un usuario en su directorio de inicio (/ home / name) pero me he encontrado con un problema. Quiero que también puedan acceder a otras partes del VPS porque también es un servidor de juegos, webhost, etc., y quiero que puedan tener un control total de los archivos fuera de su directorio encarcelado.

Intenté hacer un enlace simbólico (ln -s) al directorio deseado pero no funciona, como se esperaba. Intenté (cp -rl) con los archivos a los que quería dar acceso y funcionó: pueden editar los archivos en su directorio y cambia el que está almacenado fuera de la cárcel. PERO no pueden crear nuevos archivos (pueden pero no se actualizarán fuera de la cárcel). Sé que probablemente no estoy haciendo esto "de la manera correcta", pero ¿qué puedo hacer para hacer lo que quiero?

dukevin
fuente

Respuestas:

40

Los enlaces simbólicos son puramente simbólicos: no contienen nada más que una ruta, por lo que cuando abre un enlace simbólico, el sistema operativo lee la ruta y la utiliza en su lugar. En un entorno chroot, los enlaces (especialmente los que tienen rutas absolutas) generalmente no apuntan al mismo lugar al que apuntaban en el entorno normal.

Si el sistema operativo del servidor es Linux, su mejor opción es montar el directorio completo en algún lugar dentro del directorio chroot. Al usar esto, es importante recordar que esto no es una copia del directorio, todo lo eliminado aquí se eliminará del otro directorio (importante si el usuario puede mvarchivos o rm -rf). Para hacer esto:

mount --bind /some/directory /somewhere/else

Los archivos en el directorio deben ser archivos reales. Los enlaces simbólicos aquí probablemente tendrán los mismos problemas que tienes tratando de vincular a los archivos en primer lugar.

DerfK
fuente
Gracias por tu respuesta. ¿Puede explicarme o señalarme un tutorial sobre cómo puedo hacer que esto funcione? Tengo ssh deshabilitado para los invitados, por lo que solo tienen acceso sftp. ¿Qué archivo pongo este comando?
dukevin
Aunque no es muy recomendable, también puede crear enlaces de directorio, lo que sería más simple, pero solo si todos los archivos están en el mismo dispositivo.
Falcon Momot
¿Cuál es el comando para eso
Dukevin
@KevinDuke Esto no es algo que los usuarios puedan hacer ellos mismos, solo el root puede usarlo de mountesta manera. Puede haber una forma de especificarlo /etc/fstabpara que se realice automáticamente en el arranque, pero no estoy seguro de cómo
DerfK
1
Gracias. Leí algunos tutoriales y lo descubrí. Su respuesta realmente ayudó a señalarme en la dirección correcta. ¡Gracias! Para los que quieren saber, éstos ayudaron: aplawrence.com/Linux/mount_bind.html freebsd.org/doc/en_US.ISO8859-1/books/handbook/... redbottledesign.com/...
dukevin