Muy bien, estoy intentando replicar la configuración básica de una empresa de alojamiento web aquí autenticando a los usuarios virtuales a través de SQL y redireccionándolos/encarcelándolos a su directorio. He logrado la mayoría de los objetivos aquí,con la excepción de redirigirlos/encarcelarlos a su directorio.
Los directorios se almacenan /home/ftp
y eso es lo que DefaultRoot
está configurado. Quiero que cada usuario individual tenga y sea encarcelado en su propio directorio. No parece que la configuración homedir
en SQL tenga ningún efecto. Al iniciar sesión en FTP con cualquier usuario, inicia sesión DefaultRoot
sin encarcelamiento ni redireccionamiento de directorio.
¿Cómo logro esta última tarea?
Respuesta1
Intente comentar DefaultRoot. Creo que puede anular los valores leídos desde el servidor de la base de datos.
EDITAR:
Si se configura DefaultRoot y cualquier valor distinto a ~, el usuario será encarcelado en un árbol con raíz en DefaultRoot.
Si DefaultRoot es ~ entonces el usuario será encarcelado en un árbol con raíz en su directorio de inicio.
Respuesta2
Además de configurar DefaultRoot ~ como se mencionó, ¿cómo se ve su configuración SQL? ¿Realmente la está extrayendo de la base de datos?
DefaultRoot ~
<IfModule mod_dso.c>
LoadModule mod_sql.c
LoadModule mod_sql_mysql.c
</IfModule>
SQLLogFile /var/log/proftpd/mod_sql.log
PersistentPasswd off
AuthPAM off
AuthUserFile /some/path/to/dummy/passwd.ftp
AuthGroupFile /some/path/to/dummy/group.ftp
AuthOrder mod_sql.c mod_auth_file.c
SQLConnectInfo proftpd@localhost:3306 userdatabase password
SQLAuthTypes Backend Crypt Plaintext OpenSSL
SQLUserInfo user user_id password NULL NULL ftp_homedir NULL
SQLAuthenticate users
SQLDefaultUID 14
SQLDefaultGID 50
SQLMinUserUID 13
SQLMinUserGID 49
Ese es un ejemplo más o menos conciso de cómo realizar una autenticación del 100 % desde la base de datos y encarcelarlos en su directorio de inicio tal como figura en la base de datos. Si también desea crear dinámicamente su directorio de inicio cuando inician sesión (útil si los agrega a una base de datos y no desea iniciar sesión en un servidor para hacerlo), puede agregar:
CreateHome on dirmode 0755
...a la configuración. Los otros dos archivos ficticios enumerados anteriormente coinciden con su instalación de ProFTPd, que en un servidor Red Hat/Centos:
contraseña.ftp
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
grupo.ftp
ftp:x:50:
nobody:x:99:
Todo esto hace que sus usuarios virtuales tengan UID/GID de 14:50 en el disco duro independientemente de su nombre de usuario de inicio de sesión.