Enjualar usuario SFTP en un directorio en modo lectura en centos.

Escribo esta entrada que me surge por la necesidad de tener un usuario SFTP enjaulado en un directorio y que solo pueda acceder a los ficheros en modo lectura.

He encotrado muchos tutoriales en internet de como enjaular usuarios SFTP y como gestionar directorios en modo lectura, pero ninguno que fusioanara ambas opciones, con lo que paso a explicarlo en esta entrada.

Para realizar el tutorial es necesario tener instalado el openssh-server, que viene en casi todas las distribuciones linux, de no estar instalado se puede instalar con este comando.

yum –y install openssh-server
  1. Creamos el grupo SFTP que gestionara los accesos
groupadd sftp

2. Creamos el directorio SFTP y el directorio del usuario y los permisos adecuados.

##directorio sftp
mkdir /var/sftp
chgrp sftp /var/sftp
chmod 750 /var/sftp/

##directorio usuario sftp
mkdir /var/sftp/prueba
chmod 770 /var/sftp/prueba
chgrp sftp /var/sftp/prueba

3. Creamos el usuario prueba, añadiendolo al grupo sftp, sin accesos shell y con el home del directorio creado.

useradd -g sftp -s /bin/false -d /var/sftp/prueba prueba ; echo "Password" | passwd --stdin prueba 

4. Editamos la configuracion del ssh ( /etc/ssh/sshd_config ), donde cambiamos el modo SFTP sftp-server por internal-sftp ( Subsystem sftp internal-sftp ), añadimos el grupo sftp ( Subsystem sftp internal-sftp ), asignamos el directorio del SFTP ( ChrootDirectory /var/sftp ) y configuramos el SFTP en modo solo lectura ( ForceCommand internal-sftp -R ).

vim /etc/ssh/sshd_config

# Comentamos original
### Subsystem       sftp    /usr/libexec/openssh/sftp-server

# Add sftp group. directory. only read
    Subsystem sftp internal-sftp
    Match group sftp
    ChrootDirectory /var/sftp
    ForceCommand internal-sftp -R

5. Reiniciamos el servicio ssh.

service sshd restart

6. Comprobamos a conectarnos con cualquier sofware SFTP (como winscp) y vemos como funciona correctamente.

Acceso SFTP solo lenctura

Como borrar ficheros del directorio windows\System32\Config\TxR

El otro dio me sucedio un problema y es que me encontre el disco duro casi sin espacio.

Investigando me di cuenta de que tenia 50gb en ficehros en el directorio windows\System32\Config\TxR.

Esto se debe a las diferentes actulizaciones de windows update, que deja registro de las transacciones y nunca libera el espacio (maldito windows).

Cientos de ficheros, llenando el disco

Para poder borrqarlso bastas con abrir el cmd como administrador y ejecutar estos comandos.

cmd como administrador
attrib -r -s -h %SystemRoot%\System32\Config\TxR\*
del %SystemRoot%\System32\Config\TxR\*

Reiniciamos el sistema y ya habremos liberado todos los GB.