1 #include "uid-checker.h"
4 # ifdef SAFE_SETUID_POSIX
11 * @brief ファイルのドロップパーミッションチェック / Hack -- drop permissions
13 void safe_setuid_drop(void)
17 # ifdef SAFE_SETUID_POSIX
19 if (setuid(getuid()) != 0)
21 quit(_("setuid(): 正しく許可が取れません!", "setuid(): cannot set permissions correctly!"));
23 if (setgid(getgid()) != 0)
25 quit(_("setgid(): 正しく許可が取れません!", "setgid(): cannot set permissions correctly!"));
28 if (setreuid(geteuid(), getuid()) != 0)
30 quit(_("setreuid(): 正しく許可が取れません!", "setreuid(): cannot set permissions correctly!"));
32 if (setregid(getegid(), getgid()) != 0)
34 quit(_("setregid(): 正しく許可が取れません!", "setregid(): cannot set permissions correctly!"));
43 * @brief ファイルのグラブパーミッションチェック / Hack -- grab permissions
45 void safe_setuid_grab(void)
49 # ifdef SAFE_SETUID_POSIX
51 if (setuid(p_ptr->player_egid) != 0)
53 quit(_("setuid(): 正しく許可が取れません!", "setuid(): cannot set permissions correctly!"));
55 if (setgid(p_ptr->player_egid) != 0)
57 quit(_("setgid(): 正しく許可が取れません!", "setgid(): cannot set permissions correctly!"));
60 if (setreuid(geteuid(), getuid()) != 0)
62 quit(_("setreuid(): 正しく許可が取れません!", "setreuid(): cannot set permissions correctly!"));
64 if (setregid(getegid(), getgid()) != 0)
66 quit(_("setregid(): 正しく許可が取れません!", "setregid(): cannot set permissions correctly!"));