Description
Hi! I'm currently maintaining pesign for Arch Linux.
When taking over the package from my predecessor I started to wonder about the pesign.service setup.
In its current state it is not possible to enable the service (#50) and its stdout/stderr is not sent to the journal (#49).
More puzzling for me is the pesign-authorize script though, as it sets ACLs
Lines 31 to 48 in cbc37d9
for arbitrary users
Line 15 in cbc37d9
and groups
Line 24 in cbc37d9
on the runtime dir and config dir
Lines 50 to 55 in cbc37d9
This introduces the two following culprits:
- pesign.service can not be run as a non-root user
users (or users in specific groups) can add more users or groups to the allowed set of users or groups (due to the(whoops, those are set in/etc/pki/pesign*/
match)/etc/pesign/
)
From a security perspective this is rather suboptimal.
Maybe I'm not understanding the specific use-cases that you had in mind when creating the service, but in its current state it does not make sense for me to package the configuration files or the service, but rather to create a service file myself.
When looking at this from a classic sysadmin perspective, I'd assume that I would create a system user/group that runs the service and that I then either add any user of a system to said group to have access to what the service creates and that I optionally have a socket unit, that gives access to the socket, that the service creates/uses if this is a requirement for e.g. pesign-client
(the latter is seemingly discussed in another context in #35).
Any suggestions or explanations in regards to my assumptions would be highly appreciated! :)