How to Manage Joomla User Permissions and Access Levels (ACL Guide)
Quick Answer
Joomla controls what people can do through User Groups (Users → Groups) and controls what they can see through Access Levels (Users → Access Levels). Start from the built-in groups, create a custom group only when a role doesn't fit an existing one, keep Super User accounts to a minimum with Two-Factor Authentication enabled, and review permissions every few months using Joomla's built-in User Actions Log.
One of Joomla's strongest features is its Access Control List (ACL) — it lets you decide exactly what each person can see and do on your site. Set it up carelessly, though, and it becomes one of the easiest ways to accidentally lock yourself out or leave a security hole open. This guide walks through how Joomla's ACL actually works, how to create a custom role safely, and the habits that keep permissions clean as your team grows.
📋 What You'll Need
| Requirement | Details |
|---|---|
| Joomla version | Joomla 4.x, 5.x, or 6.x — the ACL screens covered here are the same across all three |
| Access level | Super User (administrator) login to the backend |
| Planning | A short list of the actual roles/teams on your site (e.g., "Support Staff", "Guest Contributors") |
| Optional | Two-Factor Authentication plugin enabled; a security extension such as Admin Tools if you plan to run permission audits |
What Is ACL in Joomla, and How Does It Work?
Joomla's ACL defines who can do what, and where. It runs on three connected pieces:
| Element | What it controls | Example |
|---|---|---|
| User Group | Who the user is and what actions they can perform | Author, Editor, Manager |
| Access Level | What content a group of users is allowed to view | "Registered" access level on a members-only article |
| Permission | The specific action a group can take on an item | Create, Edit, Edit Own, Delete, Publish |
Group vs. access level — the distinction that trips people up
A user group decides what a person can do (create, edit, publish). An access level decides what content a person can see. You need both configured correctly for permissions to work as expected.
Joomla's Default User Groups Explained
A fresh Joomla install ships with a hierarchy of built-in groups, each inheriting the permissions of its parent group:
| Group | What it can do |
|---|---|
| Public | Anyone visiting the front end of the site, logged in or not |
| Registered | Logged-in front-end users; no content creation rights by default |
| Author | Can create and edit only their own articles |
| Editor | Can edit any article on the site, not just their own |
| Publisher | Can edit any article and control publish/unpublish state |
| Manager | Backend access limited mainly to content management |
| Administrator | Full backend control except Global Configuration; cannot modify Super Users |
| Super User | Unrestricted access to every part of the site |
⚠️ Least privilege first
Always assign the minimum group a person needs to do their job. Reach for "Administrator" or "Super User" only when the task genuinely requires it — most content teams never need either.
How to Create a Custom User Group and Access Level
Use this when none of the default groups fit — for example, a support team that should edit articles but never touch site configuration.
Step 1: Create the custom user group
- Go to Users → Groups → New.
- Give it a descriptive name, e.g., "Support Staff".
- Select a parent group — usually "Registered" for front-end-only roles, or "Manager" if the role needs some backend access.
- Click Save & Close.
Step 2: Create a matching access level
- Go to Users → Access Levels → New.
- Name the access level to match its purpose, e.g., "Support Staff Only".
- Under "Groups", tick every user group that should be able to view content set to this access level.
- Click Save & Close.
Step 3: Assign the access level to content
- Open the article, module, or menu item you want to restrict.
- In the Publishing tab, find the Access dropdown.
- Select the access level you just created, then save.
Best Practices for Super User Accounts
- 🔐 Keep a dedicated Super User account used only for configuration or updates — don't use it as a daily-driver login.
- 📧 Set an admin-only email on Super User accounts and enable Two-Factor Authentication (2FA).
- 🚫 Never share Super User credentials between people — create a separate account per admin instead.
Review Permissions Regularly
Permissions drift as teams change. Set a recurring reminder — every 1–3 months — to:
- Remove accounts for people who've left the team.
- Downgrade roles that no longer need their current access.
- Run a permission audit with a security extension such as Admin Tools.
Restrict Backend Access
Only grant backend login (Manager group or higher) to people who actually need it. For an extra layer, restrict backend login by IP address or use a firewall/security plugin to limit where login attempts can come from.
Track User Actions with Joomla's Audit Log
Joomla ships with a built-in audit trail: go to Users → User Actions Log (only visible to Super Users) to see logins, content changes, and extension installs. For centralized monitoring across multiple sites, an external service such as Watchful.net can add alerting on top of this.
❓ Frequently Asked Questions
What's the difference between a user group and an access level in Joomla?
A user group controls what actions someone can perform, like creating or editing content. An access level controls what content a group is allowed to see. Both work together, but they answer different questions.
How many Super User accounts should a Joomla site have?
As few as possible. Most sites only need one or two, each tied to a specific person, with 2FA enabled and used only when Super User-level access is actually required.
Can a user belong to more than one group in Joomla?
Yes. Joomla lets a user belong to multiple groups at once, and they inherit the combined permissions of every group they're a member of.
How do I see what changes a user made on my Joomla site?
Go to Users → User Actions Log in the backend. It records logins, content edits, publishing changes, and extension installs, and only Super Users can view it.
Do I need a custom user group, or can I just use the defaults?
Use the defaults whenever they fit. Create a custom group only when a role needs a permission combination — like editing articles but never touching configuration — that no default group offers.
🧯 Common Mistakes to Avoid
- Confusing groups with access levels. Creating a group but forgetting to also create and assign a matching access level means content still isn't restricted.
- Defaulting to Manager or Administrator. It's tempting to hand out a built-in group that's "close enough" instead of creating the right custom one — this over-grants access.
- Skipping 2FA on Super User accounts. These are the highest-value accounts to attackers; they should be the most protected, not the least.
- Forgetting to apply the access level. A new access level does nothing until it's actually selected in an article's, module's, or menu item's Access field.
- Never revisiting old accounts. Ex-employees and inactive contributors left in Manager or higher groups are a common, avoidable security gap.
➡️ What's Next
Once your user permissions are locked down, the next place to check is your file and folder permissions — misconfigured file access is another common way Joomla sites get compromised.
✅ Last verified on Joomla 6.1 — July 2026