damonがrootとして実行するプロセスを始めましたが、そのプロセスの権限を一般ユーザーの権限として「ダウングレード」したいと思います。可能ですか?それではどうでしょうか?
PS:MacでUnixを実行する
ベストアンサー1
sudo tcpdump -Z
独自のプロセスから root 権限を削除するには、initgroups(3)、setgid(2)、および setuid(2) を使用します。
# code taken from:
# http://www.opensource.apple.com/source/tcpdump/tcpdump-32/tcpdump/tcpdump.c
/* Drop root privileges and chroot if necessary */
static void
droproot(const char *username, const char *chroot_dir)
{
...
if (initgroups(pw->pw_name, pw->pw_gid) != 0 ||
setgid(pw->pw_gid) != 0 || setuid(pw->pw_uid) != 0) {
fprintf(stderr, "tcpdump: Couldn't change to '%.32s' uid=%lu gid=%lu: %s\n",
username,
(unsigned long)pw->pw_uid,
(unsigned long)pw->pw_gid,
pcap_strerror(errno));
exit(1);
}
...
}