FTP Accounts
FTP Accounts manages ProFTPD access to the server: per-user FTP logins jailed to a chosen directory, with quotas that enforce themselves, live session visibility and searchable transfer logs. Accounts are virtual: no extra Linux users are created, and the FTP server reads them straight from the panel's database, so panel and FTP can never drift apart.
Files → FTP Accountshttps://YOUR-SERVER-IP:8443/files/ftp| Username | Directory | Quota | Status | Actions |
|---|---|---|---|---|
| [email protected] | /home/john/example.com | 2.1 / 5 GB | active | edit · password · suspend · delete |
Creating an account
The create page walks through: the panel user the account belongs to (admins and resellers pick one; users create for themselves), the FTP username, a password with a live strength meter, a quota in MB or GB (0 = unlimited) and the access location: the user's whole home, a domain's root, a domain's public_html, or a custom path where allowed. A quota card shows the owner's real disk usage and remaining allowance live, and refuses an FTP quota the account cannot afford.
DefaultRoot ~): an FTP client sees its jail as / and cannot climb out, path validation refuses anything outside the owner's home, and SITE CHMOD is disabled server-wide. Because the account runs with the owner's own UID, everything uploaded is correctly owned automatically.Quotas that enforce themselves
The quota is not decorative. A dedicated quota daemon measures each account's real on-disk usage every few minutes and suspends any account that exceeds its limit; suspended accounts simply stop authenticating (the FTP server's own account filter does the blocking). Free space and unsuspend, or raise the quota, and access returns. Creation-time checks additionally guarantee the sum of FTP quotas stays within the owner's plan disk, including the reseller hierarchy.
Day-two operations
Rows show directory, quota usage bar and status; actions cover edit (quota and password; the username and directory are fixed after creation), change password, suspend/unsuspend and delete (confirmed; deletion is final and frees the username for reuse). Suspending blocks new logins immediately.
Active Sessions (ROOT) lists who is connected right now, straight from ProFTPD's ftpwho, with IP, state and current transfer. Configuration (ROOT) edits the real ProFTPD settings: port, passive port range, connection limits and idle timeout, applied with a service restart. Transfer Logs parses ProFTPD's native xferlog with server-side search, date filtering and pagination, and each role only sees the accounts it owns in the RBAC chain.
Deletions cascade sensibly: removing a domain removes the FTP accounts jailed inside it (accounts pointing at the user's whole home survive), and removing a panel user removes all their FTP accounts.
Access
Behind the ftp license feature with per-operation permission keys (view, create, edit, delete, password, suspend, plus custom-path and config/log/session gates); a user's own domain directories never count as "custom paths". Account visibility follows the roles and permissions chain (users their own, resellers their customers', ROOT all), while the Active Sessions and Configuration tabs are ROOT-only and Transfer Logs are filtered to each viewer's accounts. Plans can cap the number of FTP accounts and turn FTP off entirely, in which case existing accounts are suspended in bulk. Everything is mirrored on the External API under ftp:* scopes.