Start by checking that /opt/rumble has the right permissions:
$ ls -la /opt/rumble/
total 8
drwxr-xr-x. 10 root root 112 Oct 8 12:09 .
drwxr-xr-x. 3 root root 20 Oct 8 12:08 ..
drwxr-xr-x. 2 root root 4096 Oct 8 12:08 agent
drwx------. 2 root root 6 Oct 8 12:08 config
drwxr-xr-x. 2 root root 32 Oct 8 12:08 console
drwxr-xr-x. 3 root root 66 Oct 8 12:09 etc
drwxr-xr-x. 2 root root 51 Oct 8 12:09 proc
drwxr-xr-x. 2 root root 4096 Oct 8 12:08 scanner
drwx------. 2 rumble rumble 6 Oct 8 12:09 storage
drwxr-xr-x. 2 rumble rumble 6 Oct 8 12:09 tmp
Next, check that /opt/rumble/console/rumble-console.bin has the right permissions and SELinux context:
$ ls -laZ /opt/rumble/console/
drwxr-xr-x. root root unconfined_u:object_r:usr_t:s0 .
drwxr-xr-x. root root unconfined_u:object_r:usr_t:s0 ..
-rwxr-xr-x. root root unconfined_u:object_r:usr_t:s0 rumble-console.bin
(If you don’t have SELinux enabled, that’s OK; just omit the Z argument to ls.)
The permissions should be r-x for other, because on startup the console gets re-run by a restricted user ID.
Assuming the permissions all look OK, check journalctl -u rumble-console and see if there are any errors reported from when the console attempted to start.
If the log says the service started OK, the command ps aux | grep rumble should show two Rumble processes, plus postgres. Example output:
$ ps aux | grep rumble
root 1742 0.0 2.3 781552 86100 ? Ssl 14:51 0:00 /opt/rumble/console/rumble-console.bin server
rumble 1747 0.2 5.0 986080 189832 ? Sl 14:51 0:03 /console/rumble-console.bin server
postgres 1753 0.0 0.5 402416 18784 ? Ss 14:51 0:00 postgres: rumble rumble 127.0.0.1(43092) idle
postgres 1754 0.0 0.5 402540 18700 ? Ss 14:51 0:00 postgres: rumble rumble 127.0.0.1(43094) idle
(You will also see the grep process itself.)
The rumble-console.bin running as root is the one rumblectl starts; the one running as rumble is the actual server task, which the root task runs in a container with restricted permissions.
If you have SELinux enabled, try grep type=AVC /var/log/audit/audit.log to see if there are any SELinux denials. Assuming it’s a clean system set up for the Rumble console, there shouldn’t be any.
Also, check the rumble user ID’s SELinux context:
$ sudo -u rumble id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
The next step is to try starting the console manually, as the rumble user:
$ sudo -u rumble /bin/bash
bash-4.2$ cd /opt/rumble/console/
bash-4.2$ ./rumble-console.bin
FATA[0000] rumble requires root privileges, re-run with sudo or from a root shell
The error at the end is expected – we’re just checking if the binary can be executed as the rumble user.
If that works, you can try the same thing, but in the chroot environment. First confirm the UID and GID for the rumble restricted user:
$ grep rumble /etc/passwd
rumble:x:1001:1001::/home/rumble:/bin/false
Then execute the chroot, replacing the 1001:1001 if your system has a different UID and GID for the user:
$ sudo chroot --userspec=1001:1001 /opt/rumble /console/rumble-console.bin
FATA[0000] rumble requires root privileges, re-run with sudo or from a root shell
Again, the error is expected, we’re just checking the binary runs.
If the console runs in the chroot environment, try systemctl restart rumble-console and then journalctl -u rumble-console and see if any more errors have turned up in the log.
Was this article helpful?
That’s Great!
Thank you for your feedback
Sorry! We couldn't be helpful
Thank you for your feedback
Feedback sent
We appreciate your effort and will try to fix the article