Skip to main content
Version: 2.0.13

FTP

Enable and manage FTP server shared for all OpenPanel users.

List​

List all FTP sub-users from all OpenPanel accounts:

opencli ftp-list
Example output
# opencli ftp-list
FTP sub-users for 'stefan':
[email protected] | /var/www/html/example.com
[email protected] | /var/www/html/example.com/dev

FTP sub-users for 'demo':
[email protected] | /var/www/html/demo.net

List all FTP sub-users for a single OpenPanel accounts:

opencli ftp-list <OPENPANEL_USERNAME>
Example output
# opencli ftp-list stefan
FTP sub-users for 'stefan':
[email protected] | /var/www/html/example.com
[email protected] | /var/www/html/example.com/dev

Add --json to either command for JSON output.

Example output
# opencli ftp-list stefan --json
[{"openpanel_user":"stefan","username":"[email protected]","password":"$6$rounds=656000$...","directory":"/var/www/html/example.com","uid":"1001","gid":"1001"}]

Add​

Create FTP sub-user for openpanel user:

opencli ftp-add <NEW_USERNAME> <NEW_PASSWORD> <FOLDER> <OPENPANEL_USERNAME> [--debug]
Example output
# opencli ftp-add [email protected] 'StrongPass1' /var/www/html/example.com stefan
Success: FTP user '[email protected]' created successfully (UID: 1001, GID: 1001).

Password​

Change password for FTP sub-user of openpanel user:

opencli ftp-password <username> <new_password> <openpanel_username> [--debug]
Example output
# opencli ftp-password [email protected] 'NewStrongPass2' stefan
Success: FTP user '[email protected]' password updated successfully.

Path​

Change FTP path for sub-user:

opencli ftp-path <username> <path> <openpanel_username> [--debug]
Example output
# opencli ftp-path [email protected] /var/www/html/example.com/backups stefan
Success: FTP path for user '[email protected]' changed successfully.

Delete​

Delete FTP sub-user for openpanel user:

opencli ftp-delete <username> <openpanel_username> [--debug]
Example output
# opencli ftp-delete [email protected] stefan
Success: FTP user '[email protected]' deleted successfully.

Connections​

View all current connections to the FTP servise:

opencli ftp-connections
Example output
# opencli ftp-connections
412 ftp 0:00 vsftpd: 203.0.113.5/[email protected]: IDLE
418 ftp 0:00 vsftpd: 198.51.100.7/[email protected]: RETR

View current connections for a specific OpenPanel user (FTP sub-users on the domains that user owns):

opencli ftp-connections <openpanel_username>
Example output
# opencli ftp-connections stefan
412 ftp 0:00 vsftpd: 203.0.113.5/[email protected]: IDLE

Logs​

View FTP service logs:

opencli ftp-logs
Example output
# opencli ftp-logs
Wed Sep 24 10:30:12 2026 [pid 412] CONNECT: Client "203.0.113.5"
Wed Sep 24 10:30:13 2026 [pid 411] [[email protected]] OK LOGIN: Client "203.0.113.5"
Wed Sep 24 10:31:02 2026 [pid 413] [[email protected]] OK UPLOAD: Client "203.0.113.5", "/var/www/html/example.com/index.php", 1824 bytes, 312.45Kbyte/sec

Users​

Recreate list of all ftp users (internal helper, not available as an opencli command):

bash /usr/local/opencli/ftp/users.sh
Was this helpful?