システム コール setgid を使用して、現在のプロセスのグループ ID を変更したいと考えています。この関数を検索しようとすると、私が見つけた唯一の実装は kern_prot.c にあります:
/*
* setgid
*
* Description: Set group ID system call
*
* Parameters: uap->gid gid to set
...
..
.
*/
int
setgid(proc_t p, struct setgid_args *uap, __unused int32_t *retval)
{
...
..
.
}
/usr/unistd.h によると、API がまったく異なることに注意してください ( int setgid(gid_t);
)。
- のラッパー
int setgid(gid_t);
ですint setgid(proc_t p, struct setgid_args *uap, __unused int32_t *retval)
- の実装はどこにあり
int setgid(gid_t);
ますか? - kern_prot.c から setgid の実装を呼び出すオプションはありますか?
アップデート:
dtruss
システム コールを監視するためにプログラムを監視した後、kern_prot.c の実装と一致するsetgid(gid_t)
3 つのパラメータでシステム コールを
呼び出すようです。setgid(0x2, 0x7F9AA3803200, 0x1000)
問題は、ラッパーのソース コードをどこで見つけることができるか、それがどのライブラリに属しているか (おそらく glibc?) です。
ありがとう 、