Run As

One of the main problems with cronicle is that node.js doesn't set all the groups that a user is part of when forking off a process, which means that even rebuilding cronicle and attributing more groups to the cronicle user is hopeless because shell scripts will run under the cronicle UID and GID without any extra group memberships being applied.

cronicle does allow running scripts under a different UID or GID other than the cronicle user, it's just that the way to do so is counter-intuitive because one cannot specify the UID or GID from the "Job Configuration" page but the UID and GID settings are rather scoped to the context of the whole "Shell Plugin" itself. This would mean that all scripts will then run with the same UID and GIDs but that's also solvable just that it is again counter-intuitive and it requires cloning the plugin.

With that being, a solution for all needs is to navigate to the Admin page and then follow the Plugins menu. Click the "Shell Script" plugin from the list and go to the very end of the page and click the button "Copy plugin…". The button will clone the "Shell Script" plugin and the interface will load immediately placing the cursor to the name of the plugin where it can be given a name. It is a good idea to give it a descriptive name, in this case, the script that we wanted to run needed to access /var/run/docker.sock with GID set to 995 so the cloned plugin was named Shell Script (Docker). Then, towards the end, there is an "Advanced Options" section where the working directory, UID and GID can be specified for the plugin. With that setup, the usage seems straight-forward: whenever a script invokes docker that needs to access /var/run/docker.sock, the script is ran with the newly cloned plugin Shell Script (Docker) instead of the default Shell Script.


fuss/cronicle.txt · Last modified: by office

Wizardry and Steamworks

© 2025 Wizardry and Steamworks

Access website using Tor Access website using i2p Wizardry and Steamworks PGP Key


For the contact, copyright, license, warranty and privacy terms for the usage of this website please see the contact, license, privacy, copyright.