I'm using ispconfig 3 with proftpd (instead of pure-ftp).
To support it i make the following small hack:
1 - in table ftp_user added two int column nguid and nuid to store numeric uid/gid corresponding to existing uid/gid (user and group names). I set this fields manually when create a new ftp account (but could be done by a script)
2 - in /etc/proftpd.conf make the very simple config:
You could also track connections count, ul/dl traffic, limit ul/dl rate, etc.
IMHO is a very good idea to store nuid/ngid in table web_domain (corresponding to system_user/system_group) when a new web/user is created: is a very usefull info!
This nuid/ngid can then be copied in table ftp_user when a new ftp account is created/edited.
Edited
Designs
Child items
...
Show closed items
Linked items
0
Link issues together to show that they're related.
Learn more.
If using this hack and want to update ispconfig, before you need to restore the original DB structure:
-- save data
SELECT concat('update ftp_user set nuid=',nuid,', ngid=',ngid,' where ftp_user_id=',ftp_user_id,';') FROM ftp_user
where nuid is not null or ngid is not null;
-- drop custom columns
alter table drop nuid;
alter table ftp_user drop ngid;
do ispconfig update
-- re-create custom columns
alter table ftp_user add nuid int after gid;
alter table ftp_user add ngid int after nuid;
Hi thanks for your fast reply! Logging is enabled. and seems like to connect to the correct user.
I think i may be getting mixed up with the nuid and ngid? because when the user logs in the user is set as the owner but group is set as ? (using filezilla)
No, the relation is between nuid/ngid and uid/gid.
Example:
in ftp_user i have: uid/gid = web21/client2
from >cat /etc/passwd i read: web21:x:5017:5006::/var/clients/client2/web21:/bin/false
so i set nuid/ngid to 5017/5006!
These are the real linux user and group id: they are numeric values; web21,client21 are only user-friendly values decoded by linux throught passwd file or other authentication layers.
It's a very old FR, but I have a working solution for this. It's a simple plugin that manages proftpd user entries in a separate table (it has some specific requirements for user data, like numeric UID/GID values). Configuration management and integration at installation is not supported (although it creates the necessary table), but if one has a working proftpd config, that can be easily adapted. It's written as a standard plugin, in use for about a year. Can post patch if anyone is interested.
I'll post the plugin file later here and the proftpd.conf I've made for it. Back then it wasn't really meant for sharing in its current state but for us it's enough for stable operation, I think it's easy enough of a change to integrate upstream in a future version.
Here are the files. It supports installation of the plugin symlink. I put the table create statement in upd_dev_collection.sql. It's not a patch so I'm omitting that file now. The sql is in the comments of the .php file.
I opted to create a separate table, but if the standard ftp_user table can be amended with UID, GID values, proftpd can use it as is, since it can use arbitrary sql queries or column names can match the existing tables. A big plus for proftpd (besides having a vast feature set and modern pw hash support) is its native sftp implementation - no need to use a separate daemon.