In systemd-managed distributions, such as Ubuntu, no permissions are needed, and none are desirable.
On such systems, by design, all non-interactive services that could possibly need such access are either launched from a root-owned process - or use a per-user runtime directory. All permission matters can and will be taken care of the manager service.
No system-wide program will ever write to /run
directly, but instead have a writeable directory provisioned for then by the system manager, only the latter having the permission to do so. The relevant configuration in a identifier.service
file reads
[Service]
RuntimeDirectory=identifier
Which results in, when started as a system service, a directory /run/identifier
being created. Or, when started from a non-root user, a directory /run/[UID]/identifier
. Both directories, by default, are setup such that the program launched in conjunction is able to write there, and communicated to the launched program by providing the environment variable RUNTIME_DIRECTORY
.