Skip to content

Usuarios web

En esta sección vamos a crear espacios web distintos administrados con su propia cuenta. En cada espacio cada usuario podrá subir su página web HTML+CSS+JS+PHP.

Cada usuario podrá gestionar su espacio web a través de un cliente SFTP (SSH para transferencia de ficheros)

Elementos que vamos a tratar:

  • Creación de Usuarios
  • Gestión de permisos
  • Forzar cambio de password (opcional)
  • SFTP
  • Configuración de Servidores web

Creación de usuarios

Requisitos:

  • La home del usuario será /var/www/<nombre_usuario>
  • No se podrá conectar por SSH

Utilizaremos el comando adduser para crear los usuarios, crearemos un usuario para cada uno de los espacios web.

Estos usuario tendrán su home en /var/www/<nombre_usuario>/, cuando se autentifiquen en el sistema se irán a este directorio.

Utilizaremos varias opciones de adduser para:

  • Especificar su home sin copiarla de /etc/skel
  • Como bash tendrá false para no permitir acceso ssh

Ejemplo de comando para el usuario bea

mkdir /var/www/bea/
mkdir /var/www/bea/web
mkdir /var/www/bea/ficheros
adduser --no-create-home --home /var/www/bea --shell /bin/false bea
chmod -R 770 /var/www/bea/
chown -R bea:bea /var/www/bea/

Dentro de ese directorio tendrán un directorio web que será el DocumentRoot de apache.

Subsitema SFTP

Para el corecto funcionamiento del SFTP y el login /bin/false debemos utilizar el internal-sftp de ssh

Cambia el fichero sshd_config

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

Conexión con FileZilla

Ahora debes ser capaz de conectarte desde un cliente al espacioweb de Bea

Filezilla

ATENCIÓN: No debes poder acceder por ssh

Espacio web

Ahora configura un servidor virtual de apache para que Bea tenga su espacio web:

http://bea.iaw.com

ATENCIÓN: No funcionará por los permisos restrictivos de /var/www/bea

Configuración de permisos de apache

Necesitamos un módulo de apache que nos permite configurar usuario y grupo para cada instancia del servidor apache.

apache2-mpm-itk (just mpm-itk for short) is an MPM (Multi-Processing Module) for the Apache web server. mpm-itk allows you to run each of your vhost under a separate uid and gid—in short, the scripts and configuration files for one vhost no longer have to be readable for all the other vhosts.

apt-get install libapache2-mpm-itk

Ahora disponemos de la directiva AssignUserID

<VirtualHost *:80>
    ServerAdmin ...
    ServerName  ....
    ...

    DocumentRoot ...
    Options -Indexes

    AssignUserID myuser mygroup

</VirtualHost>

Verificación

Verifica que todo está funcionando y Bea puede subir los ficheros a su espacio web.

ATENCIÓN: Necesitamos permisos más restrctvos: nadie puede leer los ficheros de Bea, necesitamos quietar los permisos a otros.

Gestión de permisos

Para los usuarios del sistema vamos a configurar que el propietario de los ficheros tenga permisos completos, para el grupo leer y ejecutar y para otros nada

Se puede configurar a nivel sistema, pero nuestro usuarios no se van a conectar por ssh.

Lo configuraremos a nuvel sftp, tocando el fichero de configuración de sshd_config

Subsystem sftp internal-sftp
ForceCommand internal-sftp -u 0027

Crea fichero ahora y comprueba que tiene los permisos adecuados. Haz una conexión con Filezilla y verifica que los permisos se establecen bien.

Forzar cambio de password

OPCIONAL: Si queremos que los usuarios tengan que cambiar la contraseña usaremos

chage -d 0 luser

En este servidor no es necesario hacerlo.

CHROOT

Continuar...