1 #include "io/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) {
20 quit(_("setuid(): 正しく許可が取れません!", "setuid(): cannot set permissions correctly!"));
22 if (setgid(getgid()) != 0) {
23 quit(_("setgid(): 正しく許可が取れません!", "setgid(): cannot set permissions correctly!"));
26 if (setreuid(geteuid(), getuid()) != 0) {
27 quit(_("setreuid(): 正しく許可が取れません!", "setreuid(): cannot set permissions correctly!"));
29 if (setregid(getegid(), getgid()) != 0) {
30 quit(_("setregid(): 正しく許可が取れません!", "setregid(): cannot set permissions correctly!"));
38 * @brief ファイルのグラブパーミッションチェック / Hack -- grab permissions
40 void safe_setuid_grab(player_type *player_ptr)
44 #ifdef SAFE_SETUID_POSIX
46 if (setuid(player_ptr->player_egid) != 0) {
47 quit(_("setuid(): 正しく許可が取れません!", "setuid(): cannot set permissions correctly!"));
49 if (setgid(player_ptr->player_egid) != 0) {
50 quit(_("setgid(): 正しく許可が取れません!", "setgid(): cannot set permissions correctly!"));
53 if (setreuid(geteuid(), getuid()) != 0) {
54 quit(_("setreuid(): 正しく許可が取れません!", "setreuid(): cannot set permissions correctly!"));
56 if (setregid(getegid(), getgid()) != 0) {
57 quit(_("setregid(): 正しく許可が取れません!", "setregid(): cannot set permissions correctly!"));