rogue > md_normaluser()


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

呼び出し元

rogue/main()

メモ

win32環境のコンパイルでは何もせずに終了してしまう。

使用関数

ソース

void
md_normaluser(void)
{
#if defined(HAVE_GETGID) && defined(HAVE_GETUID)
        gid_t realgid = getgid();
        uid_t realuid = getuid();

#if defined(HAVE_SETRESGID)
    if (setresgid(-1, realgid, realgid) != 0) {
#elif defined (HAVE_SETREGID) 
    if (setregid(realgid, realgid) != 0) {
#elif defined (HAVE_SETGID)
        if (setgid(realgid) != 0) {
#else
        if (0) {
#endif
                perror("Could not drop setgid privileges.  Aborting.");
                exit(1);
    }

#if defined(HAVE_SETRESUID)
    if (setresuid(-1, realuid, realuid) != 0) {
#elif defined(HAVE_SETREUID)
    if (setreuid(realuid, realuid) != 0) {
#elif defined(HAVE_SETUID)
        if (setuid(realuid) != 0) {
#else
        if (0) {
#endif
        perror("Could not drop setuid privileges.  Aborting.");
        exit(1);
    }
#endif
}