[sisyphus] unreal ircd

Vitaly Smirnov =?iso-8859-1?q?devcore_=CE=C1_gmail=2Ecom?=
Пт Май 27 18:19:34 MSD 2005


Ну хотя вообще-то не всё так страшно там ;)
Есть кусок кода, за это отвечающий:

>#if defined(IRC_UID) && defined(IRC_GID)
>        if ((int)getuid() == 0) {
>                if ((IRC_UID == 0) || (IRC_GID == 0)) {
>                        (void)fprintf(stderr,
>                            "ERROR: SETUID and SETGID have not been set
properly"
>                            "\nPlease read your
documentation\n(HINT:SETUID or SETGID can not be 0)\n");
>                       exit(-1);
>                } else {
>                        /*
>                         * run as a specified user
>                         */
>
>                        (void)fprintf(stderr,
>                            "WARNING: ircd invoked as root\n");
>                        (void)fprintf(stderr, "         changing to uid
%d\n",
>                            IRC_UID);
>                        (void)fprintf(stderr, "         changing to gid
%d\n",
>                            IRC_GID);
>                        (void)setgid(IRC_GID); // Вот тут и надо
получить gid из "uircd"
>                        (void)setuid(IRC_UID); // тут uid ;)
>                }
>        }
>#endif

В качестве решения можно просто в хидерном файле вместо gid/uid
прописать "uircd" а в коде доставать gid/uid по имени.
Вот только вопрос, какой функцией достать gid/uid ?

-- 
С уважением, Виталий Смирнов.




Подробная информация о списке рассылки Sisyphus