07/11/25 17:05:33 XjWuWSF0
uid 100, gid 500のファイル"test"があって
uid 100のユーザが gid 500と501の両方に所属しているとき,
次のグループ変更プログラムを実行すると
#include <unistd.h>
int main() { setuid(100); chown("test", -1, 501); }
実行者uid=100の場合成功,uid!=0 && uid!=100の場合失敗なのは問題ないのですが
実行者uid=0(root)の場合にも失敗するのは何故でしょう?
fedora6とdebian(version不明)で確認しています
chownの前にsetgid(500)やsetgid(501)を入れてもNGでした。
もちろんsetuid(0)とすればrootなので成功しますが
そうせずにrootがuid=100のユーザになりきる方法はないのでしょうか?
出来ないならその理由は?