Blog

A browser terminal that still respects account boundaries

Use the SHM browser terminal for account shell sessions, multiple tabs, reconnect and fullscreen while preserving permissions and JailShell boundaries.

SHMAccounts, SecurityJuly 16, 20262 min read
Browser terminal contained inside a scoped hosting account boundary

Open persistent account shell sessions in the browser with multiple tabs and reconnect controls while preserving shell entitlement and isolation.

The SHM Terminal opens an interactive shell session in the browser for accounts that are allowed shell access. It is useful for framework commands, Git, package scripts, log inspection, and the many small operations that are faster to type than to turn into a new button.

The session runs as the account user, not as root. A browser tab does not change Unix identity, account ownership, or the permissions assigned by the server administrator.

Reconnect, restart, keep working

Users can open multiple terminal tabs, reconnect to an existing session, restart a session that is no longer healthy, and use fullscreen when output needs more room. The terminal frontend handles sizing and session state while the native terminal service owns the process lifecycle.

A dropped browser connection does not need to become a mystery process. SHM can discover the session state and reconnect or cleanly create a new one according to the user's action.

About the jail

Where JailShell is enabled, the account sees the managed command environment prepared for that jail. SHM maintains the runtime files and read-only bindings needed for supported tools while keeping system areas outside the account's writable reach. Shell availability remains an account and package decision. If shell access is disabled, the Terminal page does not provide a back route around that policy. Root has a separate server terminal for server administration; the account terminal is deliberately not the same thing with a different title.

Runtimes set the toolbox

The commands available depend on the services and runtime versions installed on the server and exposed to the account environment. PHP, Node.js, Git, and other managed tools appear through their supported paths when configured. Installing a new runtime also needs the JailShell update path to make its binaries visible where required.

This is why SHM treats runtime updates and jail maintenance as one lifecycle. A tool that exists on the host but disappears inside the account shell is not an acceptable "installed" state.

Scope and responsibility

A terminal can run whatever the account user is permitted to run, so it is more powerful than a single-purpose form. It is also less forgiving: a command can modify real application files. Backups, Git history, and a quick check of the current directory remain excellent habits.

SHM provides the convenience of browser access without presenting the shell as a server-root console. That scope makes the feature suitable for shared hosting: capable enough for development and operations while remaining constrained to the account boundary.