S6-SVPERMS(8)
πΈ s6-svperms(8) β the group-chat guide to service perms π
okay so bestie, this is a page from the System Manager's Manual, and it's about s6-svperms β the little tool that lets you peek at, or change, the permissions on a bunch of services. Specifically: who can read their states, who can send them control commands, and who can subscribe to their up/down events. π
β¨ SYNOPSIS β¨
s6-svperms [-v] [-u | -g group | -G group | -o | -O group]
[-e | -E group] servicedirs...
π DESCRIPTION π
the "just looking" mode π
So like, with no options, or with only the -v option, s6-svperms prints 3 lines to stdout for every service directory you listed in servicedirs. Each line has the name of the service directory first, then the tea on one of these three things:
status:β who's allowed to read status info about the service, using stuff likes6-svstat(8)ors6-svdt(8). The values can be:ownerβ literally just the owner of the service π«Άgroup:nameβ the owner and the members of group namepublicβ everybody, all users, the whole timeline π
control:β who's allowed to send control commands to the service, with things likes6-svc(8). The values can be:ownerβ just the owner of the servicegroup:nameβ the owner and members of group name
events:β who's allowed to subscribe to events thats6-supervise(8)sends for this service, using things likes6-svwait(8)ors6-svlisten1(8). The values can be:group:nameβ the owner and members of group namepublicβ everyone π«
π¨ Also important: if something goes wrong while reading a part of the configuration of a service directory, s6-svperms does not print the corresponding line to stdout. Instead it prints a warning message to stderr. So like, no silent failures, it's giving honest communication π
the "actually changing stuff" mode π οΈ
When you invoke it with the other options, s6-svperms modifies the permissions of the service directories listed in servicedirs..., exactly as specified by the options. And heads up: the same permissions get applied to all the services listed in servicedirs.... No picking favourites, periodt.
the safety rant (affectionate) π§
The default (restrictive) permissions are safe. Iconic. Keep them.
Unless the operation of a service is itself restricted information, it's also safe to make status: more permissive. Like, lowkey fine.
Opening control: to a group can be useful β for instance in a shared administration situation where individual administrators are not given full root powers. Very "we all have a job to do" of you. π
β οΈ But making events: public bears a small risk of a local DoS attack preventing more subscriptions to events. So it is not recommended for supervision trees where such subscriptions are critical to operations β such as a set of root services managed by s6-rc[1]. Not me warning you about your own architecture π
π¦ OPTIONS π¦
-vβ re-read the permissions after writing them, and print them to stdout. a little echo, as a treat β¨-uβ restrict thestatus:andcontrol:permissions toowner: only the owner of a service directory will be able to read its state or control the service. This is the default whens6-supervise(8)starts a service for the first time.-ggroup β allow members of group group to read the status of the service, but not to control it β control stays restricted to the owner.-Ggroup β allow members of group group to read and control the service. full access bestie π-oβ allow everyone to read the status of the service, but restrictcontrol:to the owner.-Ogroup β allow everyone to read the status, and allow members of group group to control the service.-eβ allow everyone to subscribe to events. π-Egroup β only allow members of group group to subscribe to events. This is the default whens6-supervise(8)starts a service for the first time, with group being the primary group of thes6-supervise(8)process (most likelyroot).
Oh and about group β normally it's a group name that gets searched in the group database. But if it starts with a colon (:), the rest of group is interpreted as a numerical gid, and the group database will not be read. sneaky shortcut, love that for you π
β EXIT STATUS β
0β Success. slay.1β Something went wrong when reading permissions in one of the service directories.100β Wrong usage. π111β System call failed.
π SEE ALSO π
This man page is ported from the authoritative documentation at: https://skarnet.org/software/s6/s6-svperms.html
π AUTHORS π
- Laurent Bercot
- Alexis <flexibeast@gmail.com> (man page port)
okay that's the whole page bestie, go forth and configure responsibly π«Άπ β¨ β brought to you by Debian, dated September 29, 2021, filing under S6-SVPERMS(8). mwah π
π¦ where this page comes from
- nixpkgs unstable: s6 2.15.1.0
- nixpkgs unstable: s6-man-pages 2.14.0.1.4
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms