Hi,
the validate output of my LibreNMS shows no errors:
librenms@srv-librenms:~$ ./validate.php
Component
Version
LibreNMS
26.9.0-dev.73+9f526a5604 (2026-09-04T17:22:32+02:00)
DB Schema
2026_07_30_162514_add_device_refresh_config_permission (397)
PHP
8.5.10
Python
3.10.12
Database
MariaDB 10.6.22-MariaDB-0ubuntu0.22.04.1
RRDTool
1.7.2
SNMP
5.9.1
===========================================
[OK] Composer Version: 2.10.3
[OK] Dependencies up-to-date.
[OK] Database Connected
[OK] Database Schema is current
[OK] SQL Server meets minimum requirements
[OK] lower_case_table_names is enabled
[OK] MySQL engine is optimal
[OK] Database and column collations are correct
[OK] Database schema correct
[OK] MySQL and PHP time match
[OK] Active pollers found
[OK] Dispatcher Service not detected
[OK] Locks are functional
[OK] Python poller wrapper is polling
[OK] Redis is unavailable
[OK] No errors found with polling frequencies.
[WARN] IPv6 is disabled on your server, you will not be able to add IPv6 devices.
[OK] All 33354 RRD files have the correct step.
[OK] rrdtool version ok
[OK] Connected to rrdcached
Instead the web validation show this error:
FAIL: Failed to fetch version from local git: fatal: detected dubious ownership in repository at ‘/opt/librenms’ To add an exception for this directory, call: git config --global --add safe.directory /opt/librenms
The command
git config --global --add safe.directory /opt/librenms
had no effect
Any suggest? Is it correct that the 2 validation have different result?
Thanks
NiKiZe
6 September 2026 19:09
2
It is important that you run the check as the same owner of the directory.
If daily is called by a different user, then the directory should also be owned by that user for everything to just work.
Which user are you running this as, and who is the user of . (ls -la)
I run validate.php with user librenms
The owner of the folder is librenms
The problem is that validate.php and web validation have different result
librenms@srv-librenms:~$ ./validate.php
Component
Version
LibreNMS
26.9.0-dev.122+ae07504e59 (2026-09-14T20:41:03+02:00)
DB Schema
2026_09_13_120000_close_stuck_device_outages (399)
PHP
8.5.10
Python
3.10.12
Database
MariaDB 10.6.22-MariaDB-0ubuntu0.22.04.1
RRDTool
1.7.2
SNMP
5.9.1
===========================================
[OK] Composer Version: 2.10.3
[OK] Dependencies up-to-date.
[OK] Database Connected
[OK] Database Schema is current
[OK] SQL Server meets minimum requirements
[OK] lower_case_table_names is enabled
[OK] MySQL engine is optimal
[OK] Database and column collations are correct
[OK] Database schema correct
[OK] MySQL and PHP time match
[OK] Active pollers found
[OK] Dispatcher Service not detected
[OK] Locks are functional
[OK] Python poller wrapper is polling
[OK] Redis is unavailable
Web validation
FAIL: Failed to fetch version from local git: fatal: detected dubious ownership in repository at ‘/opt/librenms’ To add an exception for this directory, call: git config --global --add safe.directory /opt/librenms
NiKiZe
15 September 2026 10:01
4
Something has probably at some time run the daily as a different user, ls -la /opt/librenms output?
NiKiZe:
ls -la /opt/librenms
root@srv-librenms:~# ls -la /opt/librenms
total 4948
drwxrwx–x 32 librenms librenms 4096 Sep 15 13:26 .
drwxr-xr-x 4 root root 4096 Jun 20 15:01 ..
drwxrwxr-x 3 librenms librenms 4096 Sep 12 00:15 .agents
-rwxrwxr-x 1 librenms librenms 2189 Jun 27 2025 alerts.php
drwxr-xr-x 26 librenms librenms 4096 Aug 26 00:15 app
-rwxrwxr-x 1 librenms librenms 425 Apr 29 2025 artisan
-rw-rw-r-- 1 librenms librenms 11451 Dec 5 2024 AUTHORS.md
-rw------- 1 librenms librenms 10549 Sep 15 13:26 .bash_history
-rwxrwxr-x 1 librenms librenms 6814 Jun 27 2025 billing-calculate.php
drwxrwxrwx 3 librenms librenms 4096 Aug 13 00:15 bootstrap
drwxrwxr-x 4 librenms librenms 4096 Mar 28 2022 .cache
drwxr-xr-x 2 librenms librenms 4096 Apr 24 2022 cache
-rw-r–r-- 1 librenms librenms 94 Mar 26 2022 CHANGELOG.md
-rwxrwxr-x 1 librenms librenms 3511 Jul 2 00:15 check-services.php
-rw-r–r-- 1 librenms librenms 93 Mar 26 2022 CODE_OF_CONDUCT.md
drwxr-xr-x 3 librenms librenms 4096 Sep 4 09:00 .composer
-rw-rw-r-- 1 librenms librenms 6332 Aug 12 00:15 composer.json
-rw-rw-r-- 1 librenms librenms 546725 Sep 10 00:15 composer.lock
-rwxr-xr-x 1 librenms librenms 3642137 Sep 9 00:15 composer.phar
drwxrwxr-x 4 librenms librenms 4096 Mar 26 2022 .config
drwxr-xr-x 2 librenms librenms 4096 Sep 4 10:16 config
-rw-r–r-- 1 librenms librenms 1794 Sep 4 10:16 config.php
-rw-rw-r-- 1 librenms librenms 1714 May 20 2025 config.php.default
-rwxrwxr-x 1 librenms librenms 287 Jun 27 2025 config_to_json.php
-rw-r–r-- 1 librenms librenms 170 Mar 26 2022 CONTRIBUTING.md
-rwxr-xr-x 1 librenms librenms 880 Mar 26 2022 cronic
-rw-rw-r-- 1 librenms librenms 12642 Jul 25 00:15 daily.php
-rwxrwxr-x 1 librenms librenms 14353 Aug 16 00:16 daily.sh
drwxr-xr-x 6 librenms librenms 4096 Dec 11 2023 database
-rwxrwxr-x 1 librenms librenms 625 Jun 6 2025 delhost.php
-rwxrwxr-x 1 librenms librenms 2438 Feb 5 2026 discovery.php
-rwxrwxr-x 1 librenms librenms 2299 Feb 5 2026 discovery-wrapper.py
drwxrwxr-x 3 librenms librenms 4096 Mar 30 00:15 dist
drwxr-xr-x 11 librenms librenms 4096 Apr 18 00:15 doc
-rw-rw-r-- 1 librenms librenms 256 Dec 11 2023 .editorconfig
-rw-rw-r-- 1 librenms librenms 385 Sep 4 10:13 .env
-rw-rw-r-- 1 librenms librenms 312 Apr 29 2025 .env.example
drwxr-xr-x 8 librenms librenms 4096 Sep 15 00:15 .git
-rw-rw-r-- 1 librenms librenms 1155 Nov 13 2025 .git-blame-ignore-revs
-rw-rw-r-- 1 librenms librenms 34 Sep 4 09:32 .gitconfig
drwxr-xr-x 4 librenms librenms 4096 Apr 15 00:15 .github
-rw-rw-r-- 1 librenms librenms 691 Apr 18 00:15 .gitignore
drwxr-xr-x 10 librenms librenms 4096 Sep 9 00:15 html
drwxr-xr-x 6 librenms librenms 4096 Sep 15 00:15 includes
-rwxrwxr-x 1 librenms librenms 977 Mar 25 2025 irc.php
drwxrwxr-x 15 librenms librenms 4096 Sep 10 00:15 lang
-rw------- 1 librenms librenms 20 Nov 14 2025 .lesshst
drwxr-xr-x 23 librenms librenms 4096 Sep 10 00:15 LibreNMS
-rwxrwxr-x 1 librenms librenms 2669 Feb 5 2026 librenms-service.py
drwxr-xr-x 2 librenms librenms 4096 Mar 26 2022 licenses
-rw-r–r-- 1 librenms librenms 35337 Mar 26 2022 LICENSE.txt
-rwxrwxr-x 1 librenms librenms 1678 Sep 28 2025 lnms
drwxrwxr-x 4 librenms librenms 4096 Mar 26 2022 .local
drwxrwxr-x+ 2 librenms librenms 4096 Sep 15 13:01 logs
drwxr-xr-x 381 librenms librenms 20480 Sep 8 00:15 mibs
drwxr-xr-x 2 librenms librenms 4096 May 20 2025 misc
-rw-rw-r-- 1 librenms librenms 12632 Sep 12 00:15 mkdocs.yml
-rw------- 1 librenms librenms 325 Apr 16 2025 .mysql_history
-rw-rw-r-- 1 librenms librenms 1392 Sep 12 00:15 package.json
-rw-rw-r-- 1 librenms librenms 146029 Sep 12 00:15 package-lock.json
-rw-rw-r-- 1 librenms librenms 182254 Sep 9 00:15 phpstan-baseline-deprecated.neon
-rw-rw-r-- 1 librenms librenms 556 May 2 2025 phpstan-deprecated.neon
-rw-rw-r-- 1 librenms librenms 278 Sep 24 2025 phpstan-legacy.neon
-rw-rw-r-- 1 librenms librenms 968 Sep 1 00:15 phpstan.neon
-rw-rw-r-- 1 librenms librenms 1393 Jun 28 2025 phpunit.xml
-rwxrwxr-x 1 librenms librenms 1092 Jun 25 00:15 ping.php
-rw-rw-r-- 1 librenms librenms 5090 Sep 8 00:15 pint.json
-rwxrwxr-x 1 librenms librenms 8492 Sep 4 00:15 poll-billing.php
-rwxrwxr-x 1 librenms librenms 2579 Jun 27 2025 poller.php
-rwxrwxr-x 1 librenms librenms 2293 Nov 15 2024 poller-wrapper.py
-rw-rw-r-- 1 librenms librenms 2191 Sep 2 00:15 publiccode.yml
-rw-rw-r-- 1 librenms librenms 10040 Jun 20 00:15 README.md
-rw-rw-r-- 1 librenms librenms 783 Aug 2 00:16 rector.php
-rwxrwxr-x 1 librenms librenms 1086 Jul 26 00:17 renamehost.php
-rw-rw-r-- 1 librenms librenms 87 Jul 18 2025 requirements.txt
drwxr-xr-x 6 librenms librenms 4096 May 20 2025 resources
-rw------- 1 librenms librenms 1024 Sep 15 00:16 .rnd
drwxr-xr-x 2 librenms librenms 4096 Sep 9 00:15 routes
drwxrwxr-x+ 431 librenms librenms 20480 Aug 18 12:38 rrd
drwxr-xr-x 5 librenms librenms 4096 Aug 26 00:15 scripts
-rw-rw-r-- 1 librenms librenms 1143 Jul 24 2025 SECURITY.md
-rwxrwxr-x 1 librenms librenms 2109 Nov 15 2024 services-wrapper.py
-rw-r–r-- 1 librenms librenms 880 Mar 26 2022 snmpd.conf.example
-rwxrwxr-x 1 librenms librenms 11489 Aug 13 00:15 snmp-scan.py
-rwxr-xr-x 1 librenms librenms 538 Mar 26 2022 snmptrap.php
drwxrwxrwx+ 6 librenms librenms 4096 Mar 26 2022 storage
-rw-r–r-- 1 librenms librenms 103 Mar 26 2022 .styleci.yml
-rwxrwxr-x 1 librenms librenms 428 Sep 8 00:15 syslog.php
drwxr-xr-x 9 librenms librenms 4096 Sep 9 00:15 tests
-rwxrwxr-x 1 librenms librenms 5366 Sep 10 00:15 validate.php
drwxrwxr-x 64 librenms librenms 4096 Sep 10 00:15 vendor
drwxr-xr-x 2 librenms librenms 4096 Sep 4 10:16 .vim
-rw------- 1 librenms librenms 8870 Sep 15 11:42 .viminfo
-rw-rw-r-- 1 librenms librenms 1380 Oct 18 2025 vite.config.mjs
NiKiZe
15 September 2026 13:18
6
So both . And .git has correct ownership, and you are running as this user.
Check the contents of .git for anything not having correct ownership, or just replace the ownership.
If still fails, check /etc/passwd if you somehow have multiple users that is confusingly similar in name.