#!/bin/bash

# Uso: sudo ./new-user-ftp.sh proyecto123

# Validación
if [ -z "$1" ]; then
  echo "Uso: $0 <nombre_proyecto>"
  exit 1
fi

project="$1"
ftp_user="ftp_$project"
ftp_dir="/var/www/html/$project"
ftp_pass=$(openssl rand -base64 12)

# Validar que la carpeta del proyecto exista
if [ ! -d "$ftp_dir" ]; then
  echo "❌ La carpeta $ftp_dir no existe. Abortando."
  exit 1
fi

# Crear el usuario sin acceso shell y con el proyecto como home
useradd -d "$ftp_dir" -s /sbin/nologin "$ftp_user"
echo "$ftp_user:$ftp_pass" | chpasswd

# Asignar propiedad de los archivos al usuario
chown -R "$ftp_user":"$ftp_user" "$ftp_dir"

# Permitir lectura y escritura al usuario en su carpeta
chmod -R 755 "$ftp_dir"

# Añadir a la lista blanca de vsftpd si aplica
if [ -f /etc/vsftpd.userlist ]; then
  grep -qxF "$ftp_user" /etc/vsftpd.userlist || echo "$ftp_user" >> /etc/vsftpd.userlist
fi

echo "Usuario FTP creado:"
echo "Usuario: $ftp_user"
echo "Contraseña: $ftp_pass"
echo "Directorio: $ftp_dir"
