PanelicaDocs
panelica.com
Docs / Files & FTP / FTP Accounts

FTP Accounts

Panelica 1.0.375 Verified 2026-07-23 Files & FTP

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.

Panel locationFiles → FTP Accountshttps://YOUR-SERVER-IP:8443/files/ftp
 FTP Accounts
Accounts Active Sessions Configuration Transfer Logs
UsernameDirectoryQuotaStatusActions
[email protected]/home/john/example.com
2.1 / 5 GB
activeedit · 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.

Behind the scenes: ProFTPD authenticates directly against the panel's PostgreSQL: the account row itself, with its SHA-512 crypt password hash, the parent user's UID/GID and the home directory, is what the FTP daemon reads at login, filtered to active, non-deleted accounts. There is no passwd file to regenerate and no sync step to forget. Every account is chrooted to its directory (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.

Prefer SFTP for anything sensitive. Plain FTP transmits credentials and data unencrypted, and this server's FTP service does not offer FTPS. For encrypted transfers use SFTP, which every SSH-enabled account gets for free; keep FTP for legacy tooling that cannot speak anything else, ideally on a throwaway password and a tight quota.

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.

Panelica Documentation · Written and verified against the live panel. · Last verified 2026-07-23 on Panelica 1.0.375