On Fri, Mar 07, 2003 at 04:40:41PM +0300, Епифанов Сергей wrote: > > > > > Думаю, ответ здесь: у каждого файла есть UID и EUID, а также GID и > > > > > EGID. UID и GID определяют пользователя, который запустил программу, > > > > > а EUID и EGID - права, которые даны программе на время исполнения. > > > > > Так вот, судя по всему, mailman смотрит не на EGID (который > > > > > устанавливается через SGID-бит), а на GID, который определяется через > > > > > то, как пользователь зашел в систему. > > > > > > > > BTS? > > > > > > Это только мои предположения, что по настоящему - надо смотреть в > > > исходниках. > > > > > > Посмотрите в src строки, где есть getgid, getuid, geteuid, getegid. > > > Может, это подскажет, где искать. > > > > mailman-2.1.1/src/common.c: GID_T mygid = getgid(); > > > > > > /* Is the parent process allowed to call us? > > */ > > void check_caller(const char* ident, const char* parentgroup) > > { > > GID_T mygid = getgid(); > ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > struct group *mygroup = getgrgid(mygid); > > /* skipped */ > > if (!mygroup) > > .... > > if (strcmp(parentgroup, mygroup->gr_name)) > > fatal(ident, GROUP_MISMATCH, > > "Group mismatch error. Mailman expected the %s\n" > > Да, это оно. > > То есть, простого исправления getgid на getegid будет достаточно? > > Прежде, чем править пакет, посмотрите в spec. Какие определения для mail_user > и mail_group? postman. Между тем, -rwx--s--x 1 root mailman 6316 Мар 1 23:15 /usr/lib/mailman/mail/mailman -- Best wishes, | ICQ 103399444 Artem K. Jouravsky, | JID ujo@jabber.ru iFirst Ltd, System Administrator. ----------------------- Язык до киллера доведет