PanelicaDocs
panelica.com
Docs / Files & FTP / File Manager

File Manager

Panelica 1.0.375 Verified 2026-07-23 Files & FTP

The File Manager is a complete desktop-grade file browser inside the panel: two panes, address bar, drag and drop, keyboard shortcuts, a real code editor, archive handling with live progress, and a trash bin. Underneath it sits one of the most security-hardened subsystems in Panelica, because a web file manager on a multi-tenant server is exactly where hardening matters.

Panel locationFiles → File Managerhttps://YOUR-SERVER-IP:8443/files/manager
 File Manager
◀ ▶ ↑ ⟳ /home/john/example.com/public_html Upload New Folder
▸ home
▾ john
▾ example.com
public_html
NameSizePermissions
wp-content/·755
wp-config.php3.2 KB600
index.php405 B644

Getting around

A folder tree on the left (lazy-loaded), files on the right in grid or list view, and a Windows-11-style clickable address bar with copy-path, back/forward history (persisted across sessions), search, type filters and a status bar showing selection totals. Selection works every way you expect: checkboxes, Ctrl/Shift-click ranges, lasso box selection with the mouse, select all and invert. The right-click menu adapts to context (file, folder, archive, or empty background), items can be dragged onto folders to move them, and ?path= deep links open a folder directly, which other panel pages use to jump you into an app's directory.

Keyboard shortcuts cover the essentials: Delete, Ctrl+C/X/V, Ctrl+A, F2 rename, F5 refresh, Ctrl+U upload, Ctrl+F search, Backspace/Alt+Up for parent, Esc to clear, and Space for Quick Look, a macOS-style instant preview of images, PDFs, video and audio.

Everyday operations

New file / new folder dialogs include a permission preset (644/600 style choices for files, 755/700 for folders). Rename handles one item; Bulk Rename handles many, with find-and-replace, optional regex, and a live preview before anything is touched. Copy/cut/paste works across folders with a floating "paste here" helper; name collisions produce file (1).txt style copies rather than overwrites. Upload accepts multiple files by button, dialog or full-page drag-and-drop with per-file progress; if a file already exists the server answers with a conflict and the panel asks per file: overwrite or keep. Downloads stream single files directly, whatever their size.

Deleting moves to the Trash, not oblivion: deleted items go to a per-user trash area with their original location remembered, restorable for 30 days before automatic cleanup. Deleting five or more items at once and emptying the trash both demand typing DELETE; permanent deletion from trash asks for a regular confirmation.

Archives

Compress any selection to ZIP or TAR.GZ; extract handles zip, tar.gz/tgz, gz, tar.bz2 and, when the matching system tool is installed, rar and 7z (with the exact install command suggested if the tool is missing). Both run as streamed background jobs: a progress dialog shows the phase and percentage live, can be sent to the background while you keep working, and can be cancelled. Extraction offers conflict handling per run: overwrite, skip existing, or rename incoming.

Behind the scenes: extraction is treated as hostile input. Entry paths are cleaned and double-checked to stay inside the target (the classic zip-slip attack), symlink and hardlink entries inside archives are skipped, and decompression bombs are capped at 5 GB unpacked, 100,000 files and 2 GB per file. After extracting into a web directory the panel normalizes permissions so the web server can actually read what arrived, which kills the classic "uploaded my site, everything is 403" mystery.

Permissions and the editor

The Permissions dialog shows the rwx matrix for owner/group/other with octal and symbolic views, quick presets and an optional recursive apply for folders. Setuid/setgid bits are refused for everyone, and regular users cannot make files world-writable; ownership changes (chown) are reserved for ROOT and ADMIN, restricted to /home, and each home directory can only be assigned to its own user.

Double-clicking a text file opens the code editor: CodeMirror with syntax highlighting for PHP, JS/TS, HTML, CSS, Python, SQL, JSON, Markdown and more, search, code folding, bracket matching, word wrap and tab-width settings, a VS Code-style status bar with owner and permissions, and Ctrl+S to save. Image, PDF, video and audio files open in a preview dialog instead, with grid-view thumbnails for images.

What each role sees, concretely

The same page is four different tools depending on who opens it.

USER (a hosting customer, say john): the manager opens at /home/john and that is the entire universe. The folder tree's root is john's home, the address bar renders parent segments (/home, /) as unclickable gray, and typing or deep-linking a path outside the jail bounces back with a warning. What john actually sees inside is his hosting life: one folder per domain (example.com/public_html), mail/ for his mailboxes, app folders for his Node or Python apps. He can chmod his own files but cannot make anything world-writable (the 777 preset exists in the dialog and is refused server-side), and the ownership tab simply is not rendered for him.

RESELLER: opens at /home, but the listing is filtered: only the home directories of the reseller's own customers appear (server-side, via the accessible-directories check, so it holds even against hand-typed paths). Inside a customer's home the reseller works with the same file powers as a user, including the same world-writable and ownership restrictions.

ADMIN: also opens at /home, seeing the users in their own created-by chain. Unlike resellers, admins get the ownership (chown) tab, restricted to /home and to each directory's rightful owner, and may set permissions up to 777.

ROOT: opens at / and can browse the actual server: /etc, /var, /usr, other users' homes. Two exceptions hold even for ROOT: the panel's own /opt/panelica tree is invisible and untouchable (it does not even appear when listing /opt), and sensitive paths (shadow/passwd, SSH and SSL private material, /root) refuse reading and writing, while critical drop-ins such as cron directories and sudoers refuse writing.

With High Security Mode: this page is on the panel's protected-pages list. When a ROOT operator enables High Security Mode under Security, opening the File Manager without a fresh 2FA verification confines even ROOT to /home, with a banner explaining why and linking to 2FA setup; verifying the session with a current 2FA code restores full filesystem access. With the mode off (the default), ROOT browsing is unrestricted. This exists for the "stolen ROOT session" scenario: a hijacked cookie alone no longer reads /etc.

When the license lacks the feature: the page renders behind the standard premium-feature overlay instead of hiding, so operators can see what an upgrade adds.

Behind the scenes, the hard parts: every request passes a three-layer path validation (name sanitization, cleaned absolute paths, then a canonical jail check), and symlinks cannot escape the jail: paths are resolved through their real targets before validation, writes open with O_NOFOLLOW, and the boundary check compares whole path components so /home/al can never masquerade as /home/alice. Files created, uploaded, copied or extracted under a user's home are automatically chowned to that user, so nothing a customer manages is ever left root-owned. Deletion refuses structural targets outright: a user's home itself, an active domain's directory and its ssl/logs/public_html cores cannot be deleted even by ROOT. File operations (create, rename, move, copy, delete, upload, edit) land in a file audit log.

Access

Behind the file_manager license feature, with fine-grained permission keys for the individual operations (create, upload, download, rename, copy, move, delete, edit, compress, extract, permissions view, trash view and more), enforced again server-side. The same file API is available externally under files:* scopes.

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