FTP Permissions
This page explains the FTP Permissions screen in GoAdmio. It controls what FTP users are allowed to do — upload, download, and delete files — on a per-domain-account basis.
Location: Admin Panel → Security → FTP Permissions
Overview
Every FTP user in GoAdmio is scoped to a directory, but scope is not the same as permission. An FTP user can be limited to a single directory and still cause damage if they can upload malicious files, download sensitive data, or delete the site.
FTP Permissions lets you restrict what an FTP user can do at the file-operation level:
| Permission | Allows |
|---|---|
| Upload | Writing new files and modifying existing ones |
| Download | Reading files to the client |
| Delete | Removing files and directories |
When a permission is disabled, the FTP server refuses the corresponding operation — even if the file's Unix permissions would otherwise allow it.
> Note: FTP Permissions applies to FTP users created under a domain account. The main FTP account (the one created with the hosting account) and additional FTP users are both affected by the settings on this page. SSH/SFTP access is not controlled by this page — see Manage Shell Access.
What the Page Shows
| Column / Field | Description |
|---|---|
| Domain | The hosting account/domain whose FTP permissions are being managed |
| Upload | Whether FTP users under this domain can upload files |
| Download | Whether FTP users under this domain can download files |
| Delete | Whether FTP users under this domain can delete files |
| Actions | Save or reset the permissions |
| Search | Filter by domain |
> Tip: The settings apply to every FTP user under the domain — the main account and any additional users. If you need different permissions for different users, create separate domains or use directory-scoped FTP accounts with different domain-level settings.
Permission Combinations
The three permissions can be combined to produce different security profiles:
| Upload | Download | Delete | Effect | Use case |
|---|---|---|---|---|
| ✅ | ✅ | ✅ | Full FTP access | Trusted developer |
| ✅ | ✅ | ❌ | Can add and modify files but not remove them | Content uploader who should not delete existing files |
| ✅ | ❌ | ❌ | Upload-only — a drop box | Client uploads files without seeing existing content |
| ❌ | ✅ | ❌ | Download-only | Read-only access for audit or backup |
| ❌ | ✅ | ✅ | Download and delete, but no upload | Cleanup user |
| ❌ | ❌ | ✅ | Delete-only — rarely useful | Dangerous; avoid |
| ❌ | ❌ | ❌ | No FTP operations | Effectively disables FTP for the domain |
| ✅ | ❌ | ✅ | Upload and delete, no download | Unusual; risky for data loss |
> Warning: Allowing Delete without Upload is rarely useful and increases the risk of accidental data loss. Allowing Upload without Download is useful for drop-box scenarios but requires directory-level isolation to be effective.
> Tip: The most restrictive combination that meets the user's needs is the safest. A content uploader usually needs Upload only; an auditor needs Download only.
How to Change FTP Permissions
Via the Admin Panel
- Log in to the GoAdmio Admin Panel.
- Navigate to Security → FTP Permissions.
- Locate the domain in the list.
- Toggle the permissions:
- Click Save.
Verifying the Change
Connect with an FTP client and try each operation:
- Upload — try to upload a small test file.
- Download — try to download an existing file.
- Delete — try to delete the test file.
550 error code).
How It Works
GoAdmio configures the FTP server (VSFTPD) to enforce these permissions. When an FTP user attempts an operation:
- The client sends the command (e.g.,
STORfor upload,RETRfor download,DELEfor delete). - The FTP server checks the domain's FTP Permissions settings.
- If the operation is allowed, it checks the Unix file permissions.
- If either check fails, the operation is rejected.
0777, the FTP Permissions setting can still block the operation. This is useful for preventing damage that Unix permissions would otherwise allow.
Common Scenarios
Content uploader
A customer uploads images and PDFs to their site but should not delete existing files or download the entire site.
| Upload | Download | Delete |
|---|---|---|
| ✅ | ❌ | ❌ |
> Tip: For a true drop-box, create a dedicated FTP user scoped to an uploads directory. See FTP Accounts.
Read-only audit
An external auditor needs to download the site files but not modify them.
| Upload | Download | Delete |
|---|---|---|
| ❌ | ✅ | ❌ |
Developer with cleanup rights
A trusted developer can upload, download, and delete.
| Upload | Download | Delete |
|---|---|---|
| ✅ | ✅ | ✅ |
Restricted staging FTP
A staging site's FTP user should be able to upload and modify files but not delete them (to prevent accidental loss).
| Upload | Download | Delete |
|---|---|---|
| ✅ | ✅ | ❌ |
> Tip: This is a common protection for production sites — developers can update files without the risk of accidentally deleting them.
Restricting FTP vs. Restricting the Account
FTP Permissions is one of several controls:
| Control | What it restricts |
|---|---|
| FTP Accounts | Who can connect, and to which directory |
| FTP Permissions (this page) | What connected users can do (upload/download/delete) |
| Directory Privacy | HTTP access to directories (Basic Auth) |
| IP Blocker | Which IPs can reach the FTP service |
| SSH Port | SSH/SFTP access |
| Manage Shell Access | Whether a user can use SSH at all |
> Tip: Use all of them together: FTP Accounts for scope, FTP Permissions for operations, IP Blocker for source IPs, and Directory Privacy for HTTP-layer protection.
Related Commands
| Command | Purpose |
|---|---|
| /go/ftp | Manage FTP accounts (create, delete) — check version syntax |
| /go/checkfirewall | Verify FTP ports are open |
| /go/blacklist | Block IPs brute-forcing FTP |
| /go/sshd | Restart SSH (for SFTP connections) |
See Command Reference for the full CLI list.
Related Pages
- FTP Accounts — create and manage FTP users
- FTP Logs — audit FTP activity
- Directory Privacy — HTTP-layer password protection
- File Manager — inspect files uploaded via FTP
- IP Blocker — block FTP brute-force IPs
- Bot Blocker — block bot-driven FTP scans
- SSH Port — port used for SFTP
- Manage Shell Access — enable/disable SSH and SFTP
- Fix Permissions — repair file ownership after FTP operations
- ClamAV Antivirus — scan files uploaded via FTP
- Service Status — verify VSFTPD is running
Troubleshooting
| Problem | Likely cause | Solution |
|---|---|---|
| Upload fails with "550 Permission denied" | Upload is disabled in FTP Permissions | Enable Upload for the domain |
| Download fails | Download is disabled in FTP Permissions | Enable Download for the domain |
| Delete fails | Delete is disabled in FTP Permissions | Enable Delete for the domain |
| Customer cannot see existing files | Download is disabled — expected for drop-box users | This is by design; if the customer needs to see files, enable Download |
| Changes do not take effect | FTP service not reloaded, or client cached the directory listing | Re-connect the FTP client; if needed, restart VSFTPD |
| Permission is enabled but the operation still fails | Unix file permissions are too restrictive | Check file ownership and modes; see Fix Permissions |
| All operations fail | All permissions disabled, or the FTP user has no access to the directory | Enable at least one permission; verify the FTP user's directory in FTP Accounts |
| FTP Permissions does not affect SFTP | Correct — this page controls FTP only | Use Manage Shell Access to restrict SFTP |
| FTP Permissions does not affect the web server | Correct — this page controls FTP only | Use Directory Privacy and IP Blocker for HTTP |
Best Practices
| Practice | Why |
|---|---|
| Apply the minimum permissions needed | Least privilege reduces damage from a compromised FTP user |
| Disable Delete for production sites | Prevents accidental or malicious deletion |
| Use Upload-only for drop-box scenarios | Limits what a client can see and do |
| Combine with FTP Accounts scope | FTP Permissions applies to the whole domain; scope by directory separately |
| Review permissions after staff changes | Departed staff should lose access |
| Document permission settings | Future administrators need context |
| Monitor FTP logs | Detect abuse despite permissions; see FTP Logs |
| Use SFTP for stronger security | FTP is plaintext; SFTP encrypts and can be controlled separately |
| Test after changing permissions | Confirm the intended operations still work |
| Restrict FTP by IP | Additional layer; see IP Blocker |
Last updated: 2026-11-08