Files
Cactidocumentation/User-Management.md
Thomas Vincent 57b8088e13 docs: comprehensive validation audit, Spine poller overhaul, and technical refactor (#229)
* docs: comprehensive audit, Spine poller overhaul, and technical refactor

- Overhaul Spine documentation (Spine.md) with complete end-to-end guide: architecture, prerequisites for modern distros (EL8/9 CRB, Ubuntu 22/24, Debian 11/12, FreeBSD), SUID root permissions, secure spine.conf setup (0640), Web UI configuration (Paths, Poller type, Data Collectors tuning), MySQL max_connections sizing, and troubleshooting.
- Fix broken links and anchors (Hardening, SNMP data queries, Hook API references).
- Fix broken image reference in Sites.md (add-site.JPG -> add-site.png).
- Fix syntax errors in documentation PHP code blocks, including invalid parenthesization, missing SQL execute quotes, and malformed comments in FAQ.
- Fix DevOps installation commands: use config.php.dist, correct systemctl service names for MySQL/MariaDB/PHP-FPM, remove nonexistent php-json, add missing composer install, and correct Debian/Ubuntu systemd environment path.
- Correct grammatical errors, repeated words, and typos across all markdown documents.
- Remove obsolete unreferenced duplicate installation guides.

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* docs: correct reviewed examples and guidance

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* docs: correct guidance that disagrees with the Cacti source

Verified each claim against include/global_arrays.php, lib/auth.php,
lib/functions.php, host_templates.php and the Spine config parser. The
notable ones: api_plugin_safe_exec() does not exist on either branch,
Spine reads DB_Pass rather than DB_Password, and the CDEF special data
source table was missing five entries and renamed four others.

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* docs: wrap Spine prose and fence the connection sizing formula

The formula's bare asterisks rendered as emphasis, dropping the multiplication signs.

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

* chore: refresh copyright year in scripts and issue templates

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>

---------

Signed-off-by: Thomas Vincent <thomasvincent@gmail.com>
2026-09-08 09:41:21 -04:00

383 lines
16 KiB
Markdown

# User Management
In addition to giving you the tools to create sophisticated **Graphs**, Cacti
enables you to manage **User** and **User Group** access to those **Graphs** as
well as various other areas of Cacti. Each **User** has a variety of settings
and permissions. Some of these settings can be controlled by the individual
**User** via editing their Profile, or controlled by the Cacti Administrator. A
**Users** Cacti permissions are only modifiable by authorized Cacti
Administrators.
Note: for a users to see new settings, they will have to log off and back in
again to view.
![User Management](images/users-list.png)
Out of the box, there are two users that come with every Cacti installation. The
"admin" user - the main user that by default has access to see and change
everything in Cacti. This is the user that you first login with in Cacti, and it
is probably a good idea to keep around unless you know otherwise. The second
user is the "guest" user, which controls which areas/graphs are allowed for
unauthenticated users.
By default, this user only has rights to view, but not change graphs. This
enables any unauthenticated user to visit 'graph_view.php' and view your graphs.
This behavior can be changed by either changing the realm permissions for the
"guest" user, or disabling the guest user altogether under Cacti Settings. By
default in 0.8.7 and later, the "guest" user is not enabled, effectively
disabling "guest" (Unauthenticated) access to Cacti.
## Editing an existing User
To edit an existing user, select the User Management item under the Utilities
heading on the Cacti menu. Once at the user management screen, click username of
the user you wish to edit. You will see a screen that looks similar to the image
below.
![Editing a User](images/users-edit.png)
At minimum, you must specify a User Name and a Password for each user. Each user
field is described in more detail below. In addition to these fields, each user
can have their own realm permissions", graph permissions, and graph settings.
Each of these items are described in this section of the manual.
### User Management Options
- **_User Name_**
This field contains the login name for the user. There are no character limits
this field, but it would make sense to keep it to alphanumeric characters to
maintain simplicity.
- **_Full Name_**
(Optional) You can use this field as a more descriptive identifier for the
user. It is currently only used for display on the user management page.
- **_Password_**
Enter the password for the user twice, once in each text box. Keep in mind
that passwords are case sensitive and the password will remain unchanged if
the boxes are both left empty.
- **_Account Options_**
There are two account related options that can be set for each user.
- **_User Must Change Password at Next Login_**
Force a password change immediately after the user logs in.
- **_Allow this User to Keep Custom Graph Settings_**
Allows user to maintain their own custom graph viewing settings.
- **_Graph Options_** -
Enables certain defined graph viewing options.
- _User Has Rights to Tree View_
- _User Has Rights to List View_
- _User Has Rights to Preview View_
- **_Login Options_**
These options set what occurs after the user logs in.
- **_Show the page that user pointed their browser to_**
Will point the user to whatever page they were heading to before being
interrupted by the login page.
- **_Show the default console screen_**
This option will always point the user to 'index.php' after a successful
login.
- **_Show the default graph screen_**
This option will point the user to default graph view after login.
- **_Authentication Realm_**
This setting allows you to specify a user for use with `Local`, `Web Basic` or
`LDAP` Authentication.
**Note:** Template users must be Local.
## User Interface Permissions
Realm permissions control which areas of Cacti a user can access. You can edit a
user's realm permissions by selecting User Management and choosing the user you
want to edit the permissions for. The Realm Permissions box will be displayed in
the lower part of the screen. Each "realm" is a grouping that represents common
tasks in Cacti, making it easier to fine tune each user's access.
If you want to create a user that can only view graphs, you should select the
View Graphs realm and leave everything else unchecked. See the Graph Permissions
section for more information about how to fine tune this even more on a
per-graph basis. Conversely, if the user needs to access the console, they will
need Console Access and any additional realms that you see fit.
![User Realm Management](images/users-permissions.png)
## Graph Permissions
**Graph Permissions** control which graphs a user is allowed to view. However,
in general, these permissions do not apply to editing graphs. You can edit a
**Users** **Graph Permissions** either by assigning that **User** to one to many
**User Groups**, or by modifying their **Graph Permissions** directly.
![User Realm Management](images/users-permissions-graph.png)
Cacti supports two Graph Permission models. There is the `Permissive` Graph
permission which states that if a user has access either to the Graph, the
Device or Graph Template, the user will have access to all the Graphs that match
that class. For example, in the `Permissive` model, if you have access to the
**Device**, you have access to all it's **Graphs**. If you have access to a
**Graph Template**, you have access to every **Device Graph** that matches that
**Graph Template**.
The second Graph Permission model is `Restrictive`. In the `Restrictive` Graph
permission model, you must have access either to the **Graph** directly, or both
the **Device** and **Graph Template**. Using this permission model requires the
**Users** and **User Groups** have much more specific access if they want to
gain access to various device Graphs.
We introduced these new permission models and administrative processes to
simplify the Cacti permission system, and to increase it's usability.
In addition to the `Permissive` and `Restrictive` models, which can be set from
**Console > Configuration > Settings > General**, a **User** or **User Group**
is either `Allowed` or `Denied` all **Graphs**, **Devices** and **Graph
Templates** through a setting called the **Default Policy** in each of the
Permission Tabs. The **Graph Permissions** tab includes an `Effective Policy`,
which combines all the **Users** various **User Group** and **User** permissions
to provide an effective permission. If the **Graph** is ultimately permitted for
the **User** to view, you will see for what reason from this Permission tab.
Note: even if a **User** is denied access to a **Device** or **Graph Template**,
but has access to at least one **Graph** from that **Device** or **Graph
Template**, they will see that **Device** or **Graph Template** name in areas of
Cacti that display it.
## Default Permission Policies
![Default Policies Example 1](images/users-permissions-graph-policy1.png)
![Default Policies Example 2](images/users-permissions-graph-policy2.png)
## Device Permissions
**Device Permissions** allow you to `Grant` or `Revoke` access to specific
**Devices**. If you wish to `Grant` or `Revoke` access to a **Device**, you can
select it, and then choose the specified action from the drop down, and press
the `Go` button to make that permission change. As mentioned above, revoking
**Device** access does not necessarily block a **User** from seeing that
**Device** from the User Interface.
![User Realm Management](images/users-permissions-device.png)
## Template Permissions
**Template Permissions** allow you to `Grant` or `Revoke` access to specific
**Graph Templates**. If you wish to `Grant` or `Revoke` access to a **Graph
Template**, you can select it, and then choose the specified action from the
drop down, and press the `Go` button to make that permission change. As
mentioned above, revoking **Graph Template** access does not necessarily block a
**User** from seeing that **Graph Template** from the User Interface.
![User Realm Management](images/users-permissions-templates.png)
## Tree Permissions
Cacti allows the Administrator to `Grant` and `Revoke` **Tree** permissions from
this tab. The Cacti **Tree** permissions are a single level security object.
However, when you browse a **Tree** to it's various branches, a user will only
be allowed access to the Graphs and Devices that they have access to. Managing
permissions to **Trees** is identical to **Graphs**, **Devices** and **Graph
Templates** otherwise. Additionally, Cacti has will hide branches from a
**User** when they have no access to any **Devices** or **Graphs** within it.
## User Specific Settings
Cacti optionally allows **Users** to control certain **User Settings** such as
their `Email Address` and `Full Name`. However, the Cacti Administrator also has
the ability to view a **Users** settings and modify them for the **User** from
the **User Settings** tab. This feature allows the Cacti Administrator to better
support their **Users**. However, you can disable a **Users** ability to modify
defaults from the `General` **User Management** tab. This is important for the
`guest` account for example.
![User Realm Management](images/users-settings1.png)
![User Realm Management](images/users-settings2.png)
![User Realm Management](images/users-settings3.png)
## Caching of Permissions
In order to increase Cacti User Interface performance, when a **User** first
checks for their permissions after login to either **Devices** or **Graph
Templates** those permissions are cached for their entire login session. If you
change a **Users** **Device** or **Graph Template** permissions, they will not
see those permission changes until their next login.
## Creating a New User
To create a new user, select the User Management item under the Utilities
heading on the Cacti menu. Once at the user management screen, click the plus
(+) glyph.
![Adding a User](images/users-new.png)
At minimum, you must specify a `User Name`, `Password` and `Login Realm` for
each user. Each **User** field is self documented either below the field, or in
the help bubble to the right of it. In addition to the fields on the `General`
tab, settings can be controlled from the various sub-tabs when editing a user.
Those sub tabs include:
### General
From this sub-tab, you can modify general **User** attributes including Full
Name, Email Address, Lockout status, Account Options, Graph Options, etc.
### Permissions
From this sub-tab, you control what areas of Cacti a **User** has access to.
Cacti has broken those access areas into various `Roles` to make the setting of
permissions easier to understand. Note that **Plugin** permissions are still
grouped by Plugin in the current version of Cacti. This will change over the
next few releases to be more in line with the various Cacti Roles.
![Permissions](images/users-permissions.png)
### Group Membership
From this sub-tab, you can assign or remove users from various **User Groups**.
### Graph Perms
From this sub-tab, you can view a users `Effective` Graph permissions and also
`Grant` or `Revoke` access to **Graphs** for an individual **User**.
![Graph Permissions](images/users-permissions-graph.png)
### Device Perms
From this sub-tab, you can view and edit a users **Device** permissions. Note
that removing a users permission to a **Device** can be overridden if they have
access to either a **Graph** or, depending on the permission model you have
chosen, a **Devices** **Graph Template**.
![Graph Permissions](images/users-permissions-device.png)
### Template Perms
From this sub-tab, you can `Grant` or `Revoke` a **Users** access to various
Cacti **Graph Templates**.
![Graph Permissions](images/users-permissions-templates.png)
### Tree Perms
From this sub-tab, you can `Grant` or `Revoke` a **Users** access to the various
Cacti **Trees**.
### User Settings
From this sub-tab, you can modify a **Users** settings to assist the **User**
with their use of Cacti, or to set defaults for that **User**.
![User Settings](images/users-settings.png)
## Copying a user
![Copy a User Part 1](images/users-copy1.png)
To copy a **User** to a new one, go to **Console > Configuration > Users**. Once
at the **Users** interface, highlight the **User** you would like to copy from
and select `Copy` from the `Choose an action` drop down selection box, click
`Go` to continue. If you select multiple users, only the first selected **User**
will be used as the source **User**.
![Copy a User Part 2](images/users-copy2.png)
Specify the New Username, New Full Name and New Realm of the new user. Click
`Continue` to copy the selected template user to the designated new user. An
error will be returned if you attempt to copy over an existing user. If you
would like to copy over an existing user, use Batch Copy.
## Enable/Disable Users
![Enable/Disable Users Part 1](images/users-enable-disable1.png)
To enable or disable a set of or a single user, select the User Management item
under the Utilities heading on the Cacti menu. Once at the **Users** interface,
highlight the **User** you would like to `Enable` or `Disable` and select either
`Enable` or `Disable` from the `Choose an action` drop down selection box, click
`Go` to continue.
![Enable/Disable Users Part 2](images/users-enable-disable2.png)
Confirm that you want to disable or enable the listed users. Click `Continue` to
perform the action. Disabling your own account is not permitted.
## Batch Copy Users
Batch Copy is a helpful utility that helps Cacti Administrators maintain users.
Because Cacti does not yet support groups, it is important that there is some
way to mass update users. This what Batch Copy does for you.
![Batch Copy Users Part 1](images/users-batch-copy1.png)
To Batch Copy a set of or a single user, select the **Users** interface under
**Console > Configuration**. Once at the **Users** interface, highlight the
**Users** you would like to batch copy information to and select `Batch Copy`
from the `Choose and action` drop down selection box, click `Go` to continue.
![Batch Copy Users Part 2](images/users-batch-copy2.png)
Select the `Template User` and confirm that you want to `Batch Copy` the listed
**Users**. Click `Continue` to perform the action.
It is important to note that when using `Batch Copy` the original **Users**
`Full Name`, `Password`, `Login Realm` and `Enable` status will be retained, all
other fields will be overwritten with values from the selected `Template User`.
## Delete Users
![Delete Users Part 1](images/users-delete1.png)
To delete a set of or a single **User**, highlight the **Users** from
****Console
> Configuration > Users**** interface, then select `Delete` from the
> `Choose an action` drop down selection box and press `Go` to continue.
![Delete Users Part 2](images/users-delete2.png)
Confirm that you want to delete the listed users. Click `Continue` to perform
the action. Deleting your own account is not permitted.
## Guest (Anonymous) Access
By default, Guest or Anonymous access is disabled in Cacti. Enabling "Guest"
access is easy. But, you must understand that you should only allow the
designated "Guest" user access to what you authorized. It is not suggested that
you give the designated "Guest" user more than just access to graphs. To enable
guest access, first, need a designated "Guest" user. Cacti by default comes with
one already created that has access to only graphs.
It is important to note that the default guest user has access to all graphs on
the system. Once you have created the "Guest" user, you need to tell Cacti what
the "Guest" user is. This is done by updating the Authentication Settings and
selecting the "Guest" user you have designated. The "Guest" user must be enabled
and be set as the guest user for anonymous access to work.
---
Copyright (c) 2004-2026 The Cacti Group