nixos/weechat: add setuid wrapper for `screen' to ensure true multiuser capabilities

Previously you either had to set the setuid bit yourself or workaround
`isSystemUser = true` (for a loginable shell) to access the weechat
screen.

`programs.screen` shouldn't do this by default to avoid taking too much
assumptions about the setup, however `services.weechat` explicitly
requires tihs.

See #45728
This commit is contained in:
Maximilian Bosch 2018-10-10 01:20:42 +02:00
parent fc847785d8
commit 018573b757
No known key found for this signature in database
GPG Key ID: 091DBF4D1FC46B8E
2 changed files with 4 additions and 2 deletions

View File

@ -46,10 +46,12 @@ in
Group = "weechat";
RemainAfterExit = "yes";
};
script = "exec ${pkgs.screen}/bin/screen -Dm -S ${cfg.sessionName} ${cfg.binary}";
script = "exec ${config.security.wrapperDir}/screen -Dm -S ${cfg.sessionName} ${cfg.binary}";
wantedBy = [ "multi-user.target" ];
wants = [ "network.target" ];
};
security.wrappers.screen.source = "${pkgs.screen}/bin/screen";
};
meta.doc = ./weechat.xml;

View File

@ -54,7 +54,7 @@
</programlisting>
Now, the session can be re-attached like this:
<programlisting>
screen -r weechat-screen
screen -x weechat/weechat-screen
</programlisting>
</para>