Servicio FTP

Servicio FTP

Introducción

Antes de empezar a utilizar el servicio FTP debemos saber que tiene dos modos de funcionamiento, Activo y Pasivo, en el modo activo el servidor inicia la conexión, es decir, el servidor se conecta al cliente cuando el cliente lo solicita. En el otro caso, en el modo pasivo es el cliente el que se conecta al servidor cuando el servidor lo solicita.

En resumen, en el modo activo el cliente solicita y el servidor se conecta, y en el pasivo el servidor solicita y el cliente se conecta.

Instalación del servicio

Para instalar el servicio debemos ejecutar el siguiente comando

sudo apt-get install vsftpd

Una vez se ha instalado ya podemos pasar a configurarlo, pero antes vamos a conocer los comandos para iniciar el servicio, detenerlo, reiniciarlo y ver el estado respectivamente

sudo service vsftpd start
sudo service vsftpd stop
sudo service vsftpd restart
sudo service vsftpd status

Configurar el servicio

Para empezar a configurarlo, primero debemos dónde se encuentra el fichero de configuración, en este caso en /etc/vsftpd.conf

Los comentarios se identifican con el símbolo # al principio de la línea

En este archivo se configura todo el servicio, como hay muchos parámetros de configuración vamos a verlos los que nos van a ser útiles poco a poco.

Casos Prácticos

Vamos a realizar una serie de ejemplos para aprender a configurar el servicio FTP.

Permitir - Bloquear el acceso a los usuarios

Para empezar con este ejemplo, vamos a tener que crear 6 usuarios nuevos, los cuales vamos a llamar profe1, profe2, profe3, profe4, alum1, alum2.

sudo adduser profe1
sudo adduser profe2
sudo adduser profe3
sudo adduser profe4
sudo adduser alum1
sudo adduser alum2

Después de crearlos, vamos a realizar una modificación en el archivo de configuración del servicio FTP para hacer que solo los profe? puedan acceder a través de FTP.

sudo nano /etc/vsftpd.conf

# Indica la ubicación del fichero con la lista
userlist_file=/etc/vsftpd.userlist

# Activa la lista de usuarios
userlist_enable=YES

# Indica que los usuarios de la lista no están bloqueados
userlist_deny=NO

Eliminando los comentarios del archivo que acabamos de modificar quedaría así

listen=NO
listen_ipv6=YES

anonymous_enable=NO
local_enable=YES

userlist_file=/etc/vsftpd.userlist
userlist_enable=YES
userlist_deny=NO
Tan solo nos falta crear la lista en la que vamos a poner los usuarios que podrán acceder.

sudo nano /etc/vsftpd.userlist

profe1
profe2
profe3
profe4

Tras esta acción ya tenemos configurado el servicio FTP para este ejemplo, lo único que faltaría por realizar sería reiniciar el servicio y ver el estado para asegurarse que lo hemos configurado correctamente.

Grupos de Usuarios - Máscaras de permisos - Usuarios Anónimos

En este segundo ejemplo vamos a configurar el servicio para que puedan entrar usuarios locales y anónimos. Los usuarios profe1, profe2, profe3 deben poder subir y modificar archivos de sus carpetas personales, pero no han de ser accesibles para otros usuarios. 

Los usuarios alum1, y alum2, deben poder subir archivos a sus carpetas personales y además han de ser accesibles para los profesores.

En la carpeta /home/ubuntu/2smx han de poder subir y modificar archivos los profesores, pero los alumnos solo han de poder descargarlos.

El usuario anónimo debe poder leer y escribir en la carpeta /srv/ftp/compartit, los demás usuarios solo podrán descargar ficheros de la carpeta.

Primero vamos a hacer que ningún otro usuario pueda entrar en las carpetas personales de los profesores.

sudo chmod 770 /home/profe*

Después, volvemos a cambiar los permisos esta vez de las carpetas personales de los usuarios.

sudo addgroup profesores

sudo usermod -a -G profesores profe1
sudo usermod -a -G profesores profe2
sudo usermod -a -G profesores profe3
sudo usermod -a -G profesores profe4

sudo chown alum1:profesores /home/alum1
sudo chown alum2:profesores /home/alum2

sudo chmod 750 /home/alum* 

Pasamos a configurar la carpeta /home/ubuntu/2smx

sudo mkdir /home/ubuntu/2smx
sudo chmod 775 /home/ubuntu/2smx
sudo chown ubuntu:profesores /home/ubuntu/2smx 

Por ultimo pasamos a configurar la carpeta para el usuario anónimo

sudo mkdir /srv/ftp/compartit
sudo chmod 775 /srv/ftp/compartit
sudo chown ftp:ftp /srv/ftp/compartit

Ya solo queda configurar el servicio para que funcione correctamente.

sudo nano /etc/vsftpd.conf

# Indica que el usuario anónimo podrá entrar por FTP
anonymous_enable=YES

# Permite la creación de carpetas al usuario anónimo
anon_mkdir_write_enable=YES

# Permite acciones de escritura distintas de creación y subida al usuario anónimo
anon_other_write_enable=YES

# Permite la subida de ficheros del usuario anónimo
anon_upload_enable=YES

# Modifica la máscara del usuario anónimo (Resultado: -rw-r--r--)
anon_umask=022

# Modifica la máscara de los usuarios locales (Resultado: -rw-r--r--)
local_umask=022

# Permite la escritura utilizando es servicio FTP
write_enable=YES

El archivo quedaría tal que así

listen=NO
listen_ipv6=YES

anonymous_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_upload_enable=YES

local_enable=YES
local_umask=022
write_enable=YES

userlist_file=/etc/vsftpd.userlist
userlist_enable=YES
userlist_deny=NO

Como en el ejemplo anterior solo permitíamos el acceso a los profesores, debemos modificar el fichero para permitir a los alumnos acceder. Debería quedar así.

sudo nano /etc/vsftpd.userlist

profe1
profe2
profe3
profe4
alum1
alum2

Por ultimo me gustaría destacar que, para poder utilizar esta configuración, debemos saber que para acceder utilizando el usuario anónimo tenemos dos nombres de usuario disponibles, el usuario anonymous y el usuario ftp, estos son los dos usuarios anónimos que nos proporciona el servicio.

Grupos y Permisos de los directorios

En este otro ejemplo, vamos a modificar el ejemplo anterior para ver más a fondo los grupos y permisos que debemos configurar en el sistema de directorios de Linux.

El usuario anónimo debe poder leer y escribir en la carpeta /srv/ftp/compartit, los profesores deben poder también modificar los archivos de la carpeta, quedando solo los alumnos con permiso para descargar.

Sobre la carpeta /home/ubuntu/2smx/srd solo el usuario profe1 debe poder modificar el contenido dando permisos para leer a los usuarios alum1 y alum2.

En la carpeta /home/ubuntu/2smx/apw solo el usuario profe2 debe poder modificar el contenido, los usuarios alum1 y alum3 deben tener permiso de escritura.

En la carpeta /home/ubuntu/2smx/sgd solo el usuario profe3 debe poder modificar el contenido, dando acceso de lectura a los usuarios alum2 y alum3

En la carpeta /home/ubuntu/2smx/eie solo el usuario profe4 puede modificar, los usuarios alum1, alum2 y alum4 pueden leer el contenido.

Primero vamos a cambiar los permisos de la carpeta del usuario anónimo, el propietario ha de ser el usuario anónimo, en este caso se trata de ftp, el grupo propietario va a ser profesores, ya que deben poder añadir contenido a diferencia de los alumnos que solo pueden leer.

sudo chown ftp:profesores /srv/ftp/compartit
sudo chmod 775 /srv/ftp/compartit

Antes de continuar, vamos a crear los otros dos alumnos que necesitamos en el servidor

sudo adduser alum3
sudo adduser alum4

Y los añadimos a la lista de usuarios permitidos.

sudo nano /etc/vsftpd.userlist

profe1
profe2
profe3
profe4
alum1
alum2
alum3
alum4

El primer paso ya está realizado, vamos a las carpetas de las asignaturas de 2smx. Primero la carpeta de srd. Debemos crear la carpeta, después crear un grupo en el que estén los dos alumnos que pueden acceder, y, por último, modificar los permisos y los propietarios de la carpeta para que se cumplan las condiciones.

sudo mkdir /home/ubuntu/2smx/srd

sudo addgroup alum_srd
sudo usermod -a -G alum_srd alum1
sudo usermod -a -G alum_srd alum2

sudo chown profe1:alum_srd /home/ubuntu/2smx/srd
sudo chmod 750 /home/ubuntu/2smx/srd

Pasamos ahora a la carpeta apw, el propietario ha de ser profe2, y solo pueden acceder a leer alum1 y alum3. En este caso, realizamos los mismos pasos que en la carpeta anterior.

sudo mkdir /home/ubuntu/2smx/apw

sudo addgroup alum_apw
sudo usermod -a -G alum_apw alum1
sudo usermod -a -G alum_apw alum3

sudo chown profe2:alum_apw /home/ubuntu/2smx/apw
sudo chmod 750 /home/ubuntu/2smx/apw

Continuamos con la carpeta sgd, como propietario profe3, con permiso de lectura alum2 y alum3. Los comandos son los mismos que antes.

sudo mkdir /home/ubuntu/2smx/sgd

sudo addgroup alum_sgd
sudo usermod -a -G alum_sgd alum2
sudo usermod -a -G alum_sgd alum3

sudo chown profe3:alum_sgd /home/ubuntu/2smx/sgd
sudo chmod 750 /home/ubuntu/2smx/sgd

Y nos queda la última carpeta, la asignatura eie con propietario profe4, y con permiso de lectura los alumnos alum1, alum2 y alum4. Es el mismo proceso que antes.

sudo mkdir /home/ubuntu/2smx/eie

sudo addgroup alum_eie
sudo usermod -a -G alum_eie alum1
sudo usermod -a -G alum_eie alum2
sudo usermod -a -G alum_eie alum4

sudo chown profe4:alum_eie /home/ubuntu/2smx/eie
sudo chmod 750 /home/ubuntu/2smx/eie

Grupos Principales y Máscaras de permisos

Anteriormente ya hemos visto las máscaras y las hemos configurando, pero ahora vamos a profundizar más en este apartado viendo un ejemplo bastante claro. 

En este ejemplo vamos a configurarlo para que los archivos subidos por el usuario anónimo tengan como permiso lectura y escritura para el propietario y solo lectura para el resto. Además, los usuarios locales, se deberán poder leer y modificar por el propietario, solo leer para el grupo y ningún permiso para el resto. Por último, los profesores cuando suban un fichero a una carpeta de una asignatura, el grupo del fichero ha de ser el grupo de esa asignatura. 

Vamos a simplificar el ejemplo a resolver, cuando un usuario anónimo suba un fichero este tiene que tener los permisos -rw-rw-r--, y cuando un usuario local suba un fichero tiene que tener los permisos -rw-r-----, vamos a configurar las máscaras.

Anteriormente hemos establecido las máscaras de los dos tipos de usuarios en 022 y tenemos el resultado -rw-r--r--, por defecto la máscara está establecida en 077 y obtenemos -rw-------.

Vamos primero con la máscara del usuario anónimo, primero debemos saber que un usuario de Linux siempre crea los archivos con unos permisos predeterminados, de forma que para aplicar posteriormente la máscara que configuremos, debemos saber con qué permisos creará el fichero subido.

Los usuarios tanto locales como anónimos crean los ficheros con los permisos -rw-rw-rw-

A partir de esta base, tan solo tenemos que quitar el permiso de escritura de otros en caso del anónimo.

En el caso de los usuarios locales tenemos que quitar lectura-escritura de otros y escritura del grupo.

Vamos a configurar primero la máscara de los anónimos, se realiza tal que así.

Permisos predeterminados: - rw- rw- rw-
Permisos deseados: - rw- rw- r--
Máscara a aplicar: - --- --- -w-

La máscara es el permiso que queremos quitar como hemos podido observar.

La máscara que hemos obtenido si la pasamos a octal obtenemos el valor 002. Este es valor que tenemos que poner en el archivo de configuración en la variable de la máscara del usuario anónimo.

En los usuarios locales vamos a seguir la misma metodología.

Permisos predeterminados: - rw- rw- rw-
Permisos deseados: - rw- r-- ---
Máscara a aplicar: - --- -w- rw-

La máscara en octal es 026, este es valor que pondremos en la configuración.

sudo nano /etc/vsftpd.conf 

# Modifica la máscara del usuario anónimo
anon_umask=002

# Modifica la máscara de los usuarios locales
local_umask=026

Ya tan solo quedaría que el grupo del fichero sea el grupo de la asignatura, antes de realizar eso vamos a añadir un parámetro a la configuración

sudo nano /etc/vsftpd.conf 

# Muestra los nombres de los usuarios y los grupos en vez de los UID y GID
text_userdb_names=YES

Para realizar esta acción, no podemos establecerlo dependiendo de carpeta, sino de usuario, es decir, el grupo de los archivos subidos es el grupo primario que tiene el usuario que lo ha subido.

Para poder cumplir la condición realizaremos lo siguiente, basándonos en que cada profesor tiene una única asignatura, podemos ponerle al profesor el grupo se su asignatura. Quedaría tal que de la siguiente forma.

sudo usermod -g alum_srd profe1
sudo usermod -g alum_apw profe2
sudo usermod -g alum_sgd profe3
sudo usermod -g alum_eie profe4

De esta forma cambiamos el grupo principal de cada profesor con su respectiva asignatura, ahora los archivos creados por los profesores tendrán el grupo correcto.

Acceso SSL

Hasta hora nuestro servidor FTP tiene una conexión no segura, el servidor trae unos certificados genéricos que podemos utilizar, estos no están certificados por ninguna CA por lo que no se puede comprobar la autenticidad, pero de momento nos sirve para probar.

Vamos a realizar una configuración simple para saber cómo funciona el SSL, el usuario anónimo no va a poder conectarse por SSL, y los usuarios locales solo lo van a requerir para mandar datos. La configuración quedaría tal que así.

sudo nano /etc/vsftpd.conf 

# Activamos el uso del SSL
ssl_enable=YES

# No permitir conectarse por SSL al usuario anónimo
allow_anon_ssl=NO

# No fuerza el uso de SSL para la conexión al servidor de usuarios anónimos
force_anon_logins_ssl=NO

# No fuerza el uso de SSL para la transferencia de datos de usuarios anónimos
force_anon_data_ssl=NO

# No fuerza el uso de SSL para la conexión al servidor de usuarios locales
force_local_logins_ssl=NO

# Fuerza el uso de SSL para transferencia de datos de usuarios locales
force_local_data_ssl=YES

# Esta es la ruta del certificado, en este caso el genérico
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

# Esta es la ruta de la clave privada, en este caso la genérica
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

Para probar esta configuración debemos instalar en el cliente el paquete SSL para FTP, de lo contrario no podremos conectarnos ya que por defecto no soporta la tecnología SSL.

Creación de un certificado autofirmado

Si no queremos utilizar el certificado genérico que trae el servicio FTP, podemos crear un certificado autofirmado utilizando la herramienta gratuita OpenSSL. De esta forma podemos personalizar los datos del certificado para una mayor seguridad.

sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftp.key -out /etc/ssl/certs/vsftpd.pem

Este comando nos guarda el certificado y la clave privada en la ruta que hemos establecido en los parámetros, vamos a ver exactamente que le hemos introducido.

req Solicitud de generación del certificado
-x509 Crea un certificado autofirmado en vez de una solicitud de certificado
-nodes Encripta la clave privada si es generada
-days Días durante los cuales será válido el certificado
-newkey Crea un nuevo certificado y una nueva clave privada con el algoritmo y bits especificados
-keyout Ruta de creación de la clave privada 
-out Ruta de creación del certificado 

Tras generar el certificado, tan solo nos queda escribir las rutas en el fichero de configuración. Si has seguido el paso anterior y has incluido los certificados genéricos, tienes que quitar las rutas genéricas y poner las que acabamos de generar.

sudo nano /etc/vsftpd.conf

# Esta es la ruta del certificado que acabamos de generar
rsa_cert_file=/etc/ssl/certs/vsftpd.pem

# Esta es la ruta de la clave privada, en este caso la genérica
rsa_private_key_file=/etc/ssl/private/vsftpd.key

Ejemplo avanzado

Vamos a ver un ejemplo avanzado de configuración del servicio FTP en que veremos unos cuantos parámetros más que podemos configurar, además de continuar utilizando los grupos y permisos que nos permite utilizar Linux.

Lo primero que tendremos que realizar es añadir un mensaje de bienvenida en el que ponga “Bienvenido al servidor seguro del IES LLUISSIMARRO”

Después lo configuramos para que solo permita el acceso obligatorio por SSL a los usuarios del sistema, el usuario anónimo no podrá utilizar SSL.

El usuario anónimo debe tener control total del directorio /srv/ftp/compartit, los demás usuarios solo han de poder descargar el contenido. Además, si accedemos utilizando el usuario anónimo no ha de solicitar contraseña.

Los usuarios, director, vicedirector, secretari, vicesecretari, capestudis1, capestudis2 y coordinador deben tener control total en sus respectivas carpetas, no accesibles para nadie más.

El usuario coordinador no podrá acceder utilizando FTP, y el usuario capestudis2 no podrá salir de su carpeta principal, además existirá un usuario iessimarro que será accesible para todos los usuarios locales.

En la carpeta /home/iessimarro/admin/comptesBanc han de poder editar director, vicedirector, secretari y vicesecretari, pero solo leer capestudis1 y capestudis2, ningún otro usuario puede entrar. La carpeta mostrará un mensaje “Carpeta de la directiva dels Comptes Bancaris”.

En la carpeta /home/iessimarro/admin/horaris han de poder editar capestudis1 y capestudis2, leer director y vicedirector. La carpeta debe mostrar “Carpeta de la directiva del HORARIS dels grups”.

En la carpeta /home/iessimarro/admin/centre han de poder editar director y vicedirector, leer el resto de directiva. Mostrará el mensaje “Carpeta de la directiva dels documents interns del CENTRE”

En la carpeta /home/iessimarro/extraescolars/ todos los usuarios de esta actividad han de poder añadir información, pero no editar ni borrar actividades, excepto el autor y el vicedirector. Los demás usuarios solo pueden leer.

Las acciones realizadas se guardarán en un fichero con formato vsftpd.

Por último, los ficheros y carpetas mostrarán el nombre del propietario y el grupo no el UID y GID.

Es un ejemplo bastante completo, por lo que vamos a ir haciéndolo poco a poco

Primero vamos a configurar el mensaje de bienvenida, para realizar esto, tenemos dos parámetros disponibles.

# Añade un mensaje de bienvenida de una línea
ftpd_banner=[string]

# Añade un mensaje de bienvenida escrito en el fichero establecido
banner_file=[file]

En nuestro caso establecemos el primero, pero son los dos iguales de válidos

sudo nano /etc/vsftpd.conf

ftpd_banner=Bienvenido al servidor seguro del IES LLUISSIMARRO

Pasamos a configurar el SSL, como anteriormente hemos generado un certificado autofirmado, lo volveremos a utilizar ahora.

# Activamos el uso del SSL
ssl_enable=YES

# No permitir conectarse por SSL al usuario anónimo
allow_anon_ssl=NO

# No fuerza el uso de SSL para la conexión al servidor de usuarios anónimos
force_anon_logins_ssl=NO

# No fuerza el uso de SSL para la transferencia de datos de usuarios anónimos
force_anon_data_ssl=NO

# Fuerza el uso de SSL para la conexión al servidor de usuarios locales
force_local_logins_ssl=YES

# Fuerza el uso de SSL para transferencia de datos de usuarios locales
force_local_data_ssl=YES

# Esta es la ruta del certificado, en este caso utilizamos el autofirmado
rsa_cert_file=/etc/ssl/certs/vsftpd.pem

# Esta es la ruta de la clave privada, en este caso utilizamos la autofirmada
rsa_private_key_file=/etc/ssl/private/vsftpd.key

Para que el usuario anónimo tenga control total de la carpeta /src/ftp/compartit, primero tenemos que crearla en caso de que no exista.

sudo mkdir /srv/ftp/compartit
sudo chmod 775 /srv/ftp/compartit
sudo chown ftp:ftp /srv/ftp/compartit

Ya tiene control total, nos queda que no solicite contraseña al iniciar sesión, para realizar esto tenemos que activar un parámetro.

sudo nano /etc/vsftpd.conf

no_anon_password=YES

Pasamos ahora a configurar los usuarios y sus respectivas carpetas personales

sudo adduser director
sudo adduser vicedirector
sudo adduser secretari
sudo adduser vicesecretari
sudo adduser capestudis1
sudo adduser capestudis2
sudo adduser coordinador
sudo adduser iessimarro

sudo chmod 770 /home/director
sudo chmod 770 /home/vicedirector
sudo chmod 770 /home/secretari
sudo chmod 770 /home/vicesecretari
sudo chmod 770 /home/capestudis1
sudo chmod 770 /home/capestudis2
sudo chmod 770 /home/coordinador
sudo chmod 775 /home/iessimarro

El usuario coordinador no ha de poder acceder via FTP, así que vamos a bloquearle el acceso. Anteriormente ya lo hemos configurado, pero vamos a volver a hacerlo, la forma más fácil de realizarlo es utilizando la lista de usuarios que podemos configurar en el servicio vsftpd.

sudo nano /etc/vsftpd.conf

# Indica la ubicación del fichero con la lista
userlist_file=/etc/vsftpd.userlist

# Activa la lista de usuarios
userlist_enable=YES

# Indica que los usuarios de la lista no están bloqueados
userlist_deny=NO

Podemos hacer que solo los usuarios de la lista tengan acceso, o que solo los que no están en la lista lo tengan, en este ejemplo vamos a realizarlo basándonos en la primera opción.

sudo nano /etc/vsftpd.userlist

director
vicedirector
secretari
vicesecretari
capestudis1
capestudis2
iessimarro

El usuario capestudis2 no va a poder salir de su home, para realizar esta acción, vamos a tener que crear otra lista.

 

sudo nano /etc/vsftpd.conf

chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot

sudo nano /etc/vsftpd.chroot 

capestudis2

Ya hemos configurado los usuarios y sus carpetas personales, pasemos ahora a configurar las carpetas situadas dentro de /home/iessimarro.

Para poder configurar las carpetas que se encuentran dentro de la carpeta /home/iessimarro/admin, tenemos que pararnos a pensar en los permisos de la misma.

Tenemos que crear un grupo en el que únicamente estén los usuarios que van a necesitar acceder a alguna de las subcarpetas, esos usuarios son director, vicedirector, secretari, vicesecretari, capestudis1 y capestudis2.

sudo addgroup group_admin

sudo usermod -a -G director
sudo usermod -a -G vicedirector
sudo usermod -a -G secretari
sudo usermod -a -G vicesecretari
sudo usermod -a -G capestudis1
sudo usermod -a -G capestudis2

sudo chown iessimarro:group_admin /home/iessimarro/admin

Pasamos ahora a configurar la carpeta comptesBanc, necesitamos un grupo específico para esta carpeta, como la carpeta padre tiene bloqueado el acceso nos podemos asegurar que los otros usuarios van a ser únicamente capestudis1 y capestudi2.

mkdir /home/iessimarro/admin/comptesBanc

sudo addgroup group_comptesBanc

sudo usermod -a -G group_comptesBanc director
sudo usermod -a -G group_comptesBanc vicedirector
sudo usermod -a -G group_comptesBanc secretari
sudo usermod -a -G group_comptesBanc vicesecretari

sudo chown iessimarro:group_comptesBanc /home/iessimarro/admin/comptesBanc
sudo chmod 775 /home/iessimarro/admin/comptesBanc

Para añadir un mensaje al acceder a la carpeta, tenemos que crear un archivo llamado .message y añadir un parámetro a nuestra configuración.

sudo nano /home/iessimarro/admin/comptesBanc/.message

Carpeta de la directiva dels Comptes Bancaris

Activamos que al acceder a las carpetas muestre el contenido de .message si existe el fichero.

sudo nano /etc/vsftpd.conf

# Activa los mensajes de las carpetas
dirmessage_enable=YES

Pasamos a la segunda carpeta, en este caso en el grupo ha de estar capestudis1 y capestudis2, como no podemos dos grupos, aparte de director y vicedirector, también podrán entrar secretari y vicesecretari, pero en ningún momento nos dice que no han de poder acceder.

sudo mkdir /home/iessimarro/admin/horaris

sudo addgroup group_horaris

sudo usermod -a -G group_horaris capestudis1
sudo usermod -a -G group_horaris capestudis2

sudo chown iessimarro:group_horaris /home/iessimarro/admin/horaris
sudo chmod 775 /home/iessimarro/admin/horaris

Como anteriormente vamos a configurar el mensaje, como ya está la directiva activa, solo tenemos que crear el fichero .message con el mensaje que queremos que muestre.

sudo nano /home/iessimarro/admin/horaris/.message

Carpeta de la directiva del HORARIS dels grups

En la tercera carpeta, en el grupo debe estar el director y el vicedirector.

sudo mkdir /home/iessimarro/admin/centre

sudo addgroup group_centre

sudo usermod -a -G group_centre director
sudo usermod -a -G group_centre vicedirector

sudo chown iessimarro:group_centre /home/iessimarro/admin/centre
sudo chmod 775 /home/iessimarro/admin/centre

Y creamos el mensaje a mostrar.

sudo nano /home/iessimarro/admin/horaris/.message

Carpeta de la directiva dels documents interns del CENTRE

Todas las subcarpetas están creadas y configuradas, ahora pasamos a configurar la carpeta extraescolars. Como no se especifica ningún usuario para el grupo, lo dejamos vacío.

sudo mkdir /home/iessimarro/extraescolars
sudo addgroup group_extraescolars

sudo chown iessimarro:group_extraescolars /home/iessimarro/extraescolars
sudo chmod 775 /home/iessimarro/extraescolars

Si nos fijamos, nos especifica que solo el usuario que ha creado el fichero y el vicedirector pueden editar o borrar un fichero, pero ¿cómo hacemos esto? Utilizando el Sticky Bit podemos realizar esta acción para este caso en concreto tendremos que definir los permisos añadiendo un valor antes de los tres dígitos. Para este ejemplo el valor del Sticky Bit es 1.

sudo chmod 1775 /home/iessimarro/extraescolars

En la posición de la ejecución del grupo otros debe haber ahora una T, el valor cambia de mayúscula a minúscula en caso de que exista la ejecución o no.

T No hay permiso de ejecución

t Hay permiso de ejecución

Para obtener un log de todas las acciones realizadas tenemos que activar el siguiente parámetro, también cambiaremos el nombre del fichero para que tenga la extensión deseada.

xferlog_enable=YES
vsftpd_log_file=/etc/vsftpd/log.vsftpd

Para finalizar la configuración de nuestro servidor para este ejemplo, tenemos que activar el parámetro que cambia los UID y GID por el nombre y el grupo en texto.

sudo nano /etc/vsftpd.conf

# Muestra los nombres de los usuarios y los grupos en vez de los UID y GID
text_userdb_names=YES

Cliente

Para que el cliente se conecte al servidor tenemos que utilizar el comando FTP

ftp [servidor]

En el parámetro [servidor] podemos indicar tanto una dirección IP como un host.

Tras esto nos solicitará el usuario y posteriormente la contraseña

Una vez dentro tenemos muchos comandos que podemos utilizar, vamos a ver unos pocos

cd Moverse por el sistema de carpetas remoto

cdup Moverse al directorio padre de nuestra ubicación

lcd Moverse por el sistema de carpetas local

delete Elimina un fichero

get Obtiene un fichero

exit Salir, cerrar la conexión

mdelete Elimina varios ficheros

mget Obtiene varios ficheros

mkdir Crear una carpeta

put/send Subir un fichero

mput/msend Subir varios ficheros

pwd Posición actual en el sistema de ficheros remoto

![comando] Ejecuta un comando en la terminal local sin necesidad de salir del FTP

Soporte a la conexión SSL

Para soportar la conexión FTP utilizando SSL tenemos que instalar el siguiente paquete

sudo apt-get install ftp-ssl

Tras realizar esta acción, ya podemos utilizar conexiones FTP sobre SSL.

 

 

Si te ha gustaado este post, estos también te pueden interesar...