Team Collaboration
WebXTerm uses a hierarchical Role-Based Access Control (RBAC) model. A Superadmin manages the entire platform, Company Admins manage their own organizations, and Users can only access machines explicitly granted to them.
How RBAC Works
Hierarchical access control โ Superadmin โ Company Admin โ User โ Machine
Role-Based Access Controlโ
The Three-Tier Hierarchyโ
Super Administrator (super_admin)
โโโ Full platform control โ manages all organizations, users, groups, machines
Company Admin (company_admin)
โโโ Manages their own organization โ users, groups, machines, access
User (user)
โโโ Accesses only machines they have been explicitly granted access to
Portal Rolesโ
These roles control access to the WebXTerm web portal and admin functions.
| Role | Internal Name | Scope | Capabilities |
|---|---|---|---|
| Super Administrator | super_admin | Platform-wide | Create/manage all organizations, manage all users & groups & machines, system configuration |
| Company Admin | company_admin | Organization | Manage users, groups, and machines within their organization; grant machine access to users |
| User | user | Machine-level | View and connect to machines they have been explicitly assigned |
Super Administrator permissions: manage_organizations, manage_all_users, manage_all_groups, manage_all_machines, view_all_resources, system_configuration
Company Admin permissions: manage_users, manage_groups, manage_machines, view_org_resources
User permissions: view_assigned_machines, use_assigned_machines, view_own_profile
Machine Rolesโ
When a user is granted access to a machine, they also receive a machine role that controls what they can do in a terminal session on that machine:
| Machine Role | Internal Name | What They Can Do |
|---|---|---|
| Sudo Access | sudo | Full admin access โ execute privileged commands, modify system files, install packages, manage services |
| Non-Sudo Access | non-sudo | Standard user access โ run regular commands only, cannot execute privileged commands |
Sudo permissions: execute_sudo_commands, modify_system_files, install_packages, manage_services
Non-Sudo permissions: execute_user_commands, read_system_info
RBAC Flowโ
- Superadmin creates organizations (companies) via User Management โ Organizations
- Superadmin creates a Company Admin user and assigns them the
company_adminrole for their organization - Company Admin adds machines to their organization by registering
vsay-agent - Company Admin invites users and grants them access to specific machines with a machine role (
sudoornon-sudo) - Users connect only to machines they have been explicitly granted access to
- If a user has not logged in for 30 days, their access is automatically revoked
Managing Team Membersโ
Inviting New Membersโ
- Navigate to User Management โ Users
- Click "Add User"
- Enter the email address and assign a portal role (
company_adminoruser) - Save โ the user can now log in
Granting Machine Accessโ
Only a Company Admin can grant users access to machines:
- Go to Machines โ [Select Machine] โ Access
- Click "Add User"
- Select the user and choose their machine role (
sudoornon-sudo) - Save
To revoke access, remove the user from the machine's allowed list.
Removing Membersโ
- Go to User Management โ Users
- Find the user and remove them
The user immediately loses access to all organization resources.
Users who have not logged in for 30 days are automatically deprovisioned. Their access is revoked until re-enabled by a Company Admin.
Machine Managementโ
Only Company Admins (and Superadmin) can add or delete machines:
- Add machine: Install and configure
vsay-agenton the machine โ it appears in the dashboard automatically - Delete machine: Go to Machines โ [Machine] โ Delete โ removes the machine from the organization
Command Restrictionsโ
When registering the agent, you can allow or restrict sudo in terminal sessions:
sudo vsay-agent configure \
--token YOUR_BOOTSTRAP_TOKEN \
--host http://your-webxterm-instance.com:8080 \
--linux-user ubuntu \
--allow-sudo # Grant sudo access in sessions
Best Practicesโ
- Principle of Least Privilege โ assign
non-sudoby default; only grantsudowhere needed - Regular Audits โ periodically review who has access to which machines
- Offboarding โ remove users immediately when they leave; auto-revocation at 30 days is a safety net, not a substitute
- Separate Production Access โ keep production machine access restricted to a small set of users