daemontools の setuidgid が supplementary groups 権限をつけてくれない件

daemontools の setuidgid』や 『補助グループ権限もつけてくれるsetuidgidのようなもの』のところに書いてある話なんですが、daemontoolssetuidgid は 補助グループ権限をつけてくれません。

どういうことかというと、sysadmin グループに属する admin ユーザがいて、下記のような設定になってるときに、

$ id admin
uid=2500(admin) gid=2500(admin) groups=2500(admin),2501(sysadmin)

$ ls -l /home/admin/password.pl
-rw-r----- 1 root sysadmin 584 Jul 24 22:47 /home/admin/password.pl

下記のような run ファイルで daemon を起動したところ、password.pl が読めないというエラーが出ました。

#!/bin/sh
exec 2>&1
exec setuidgid admin /path/to/oreno_daemon

一見すると、admin ユーザは sysadmin ユーザに含まれているため権限は問題ないように思えて、実際にコンソールから実行すると読むことができるのですが、前述の通り setuidgid は補助グループ権限をつけてくれないため、setuidgid で指定した admin ユーザは下記のようなユーザとみなされ、password.pl を読むことができないというオチでした。

$ id admin
uid=2500(admin) gid=2500(admin) groups=2500(admin)

解決策は、『補助グループ権限もつけてくれるsetuidgidのようなもの』にまとまってますが、この辺りを使うのがいいのではないかと思ってる次第です。