2021年9月アーカイブ

Linux memo 2021/09/17

● 補助グループID
補助グループID(supplementary group ID)は、(ユーザではない)プロセスがGIDとは別に持つグループIDの集合。setgroups(2)で設定でき、getgroups(2)で確認できる。ただしsetgroups()は特権(CAP_SETGID)が必要。
特権がないと設定できないので、通常はログイン処理の一貫で設定する。su(1)とかsshdとかがやっている。
setuid(2)やseteuid(2)などと似たような概念が必要になるが、suidのような特権を取り戻すのに近い処理はないので、そこまで複雑ではない。
補助グループIDは、プロセスの持つgidやegidとは別ものなので、setuidgidコマンド(busybox?)では設定されない。つまり、setuid(2), getgid(2)しただけでは補助グループIDは設定されない。「setuigid 1000 /usr/bin/id」 と 「su $(id -un 1000) -c "/usr/bin/id"」 とを比べてみるとよい。

● limitの設定方法
Linuxのlimit設定を変更した場合、setrlimit(2)を呼ぶかbash builtinのulimitを使うかというのが一般的にはなるが、util-linuxにあるprlimit(3)を使う方法もある。limit設定変更をしてそのままコマンド実行できるので、oneshotな実行をやりやすい。
$ prlimit --msgqueue=unlimited su $(id -un 1000) -c "./mqueue_test_prog"
なお確認するだけなら、getrlimit(2)やbuiltin ulimitを使う他に、/proc/self/limitを見る方法でもよい。
似たようなプログラムに setpriv(3)がある。uid,gid系の各種を設定して実行できる、らしい。

このアーカイブについて

このページには、2021年9月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2021年6月です。

次のアーカイブは2022年1月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ

ウェブページ

Powered by Movable Type 7.9.0