GNU/Linux >> Tutoriales Linux >  >> Linux

Permisos de escritura de usuario SFTP chrooted

Hemos encontrado una solución recientemente que dice así:

/etc/ssh/sshd_config:

...

Subsystem sftp internal-sftp

Match Group sftponly
    ChrootDirectory /home
    AllowTCPForwarding no
    X11Forwarding no
    ForceCommand internal-sftp

permisos de directorio:

[email protected]:~ # chown root:root /home
[email protected]:~ # chmod 111 /home
[email protected]:~ # chmod 700 /home/*

Ahora /home cumple los requisitos para ChrootDirectory y no puede ser listado por usuarios restringidos, pero sftponly los usuarios no podrán iniciar sesión si sus directorios de inicio están configurados como de costumbre (/home/$LOGNAME ):en el entorno chroot, sus directorios de inicio no están dentro de /home pero directamente bajo la raíz (/ ).

solución 1

Configure las casas de los usuarios restringidos para que aparezcan en chroot:

[email protected]:~ # usermod -d /username username

advertencia 1

Si alguno de los usuarios sin restricciones o algún script de administración usa la expansión de tilde de bash como ~username se expandirá a /username ahora, que no es lo que se quiere decir.

También el administrador que crea sftponly los usuarios deben recordar usar el hogar no predeterminado. Solucionable con un script. Que el administrador debe recordar usar.

solución 2

Esta es una alternativa a la anterior que acabamos usando:

[email protected]:~ # ln -s . /home/home

Eso es crear un enlace simbólico dentro de /home a su propio dirname. Ahora bajo chroot /home/username apunta al mismo directorio que sin chroot. Para usuarios restringidos que iniciaron sesión con sftp, aparecería como /username . Este directorio tiene permisos de escritura para su propietario (usuario restringido). El usuario restringido no puede enumerar sus directorios principales o de inicio de ninguno de los hermanos por nombre.

Lo único especial de un sftponly usuario es su participación en el sftponly grupo. Encontramos que era más fácil de manejar que la solución alternativa 1.

advertencias 2

  1. No puede tener un usuario llamado 'inicio' con un directorio de inicio /home/home
  2. Debe tener cuidado con los scripts que atraviesan /home jerarquía y seguir enlaces simbólicos.

Debe crear una estructura dentro del directorio de inicio del usuario, como directorios de entrada y salida. Esos directorios deben ser propiedad del usuario y allí podrá poner y obtener archivos.


Tengo la misma configuración en nuestro servidor. Usamos la misma configuración de SSHD. Los directorios de inicio de los usuarios son propiedad de root y dentro de ellos hay carpetas documents y public_html propiedad de los respectivos usuarios. Luego, los usuarios inician sesión usando SFTP y escriben en esas carpetas (no directamente en casa). Como SSH no está permitido para ellos, funciona perfectamente. Puede ajustar qué directorios se crearán para nuevos usuarios en /etc/skel/ (al menos en openSUSE, no estoy tan familiarizado con otras distribuciones).

Otra posibilidad sería ACL (documentación de openSUSE):puede agregar permiso de escritura para el usuario respectivo para su directorio de inicio.


Linux
  1. ¿Ssh y permisos de directorio de inicio?

  2. Xemacs:¿Cargar todos los archivos en /home/barry/.emacs_barry?

  3. ¿Cómo deshabilitar a Gnome para que no haga Documentos/Video/en CASA?

  4. ¿Por qué poner otras cosas que no sean /home en una partición separada?

  5. Edite el directorio de inicio para un usuario LDAP en Linux

Autenticación SSH de Ansible y escalada de privilegios

Crear directorio de inicio para usuarios existentes en Linux

Excelente servicio al cliente para destacar

mv:no se puede mover de casa a casa-antiguo:Dispositivo o recurso ocupado

¿Por qué los directorios /home, /usr, /var, etc. tienen todos el mismo número de inodo (2)?

Necesidad de corregir los permisos de archivo en el directorio de inicio de un usuario