From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: From: =?koi8-r?b?5dDJxsHOz9cg88XSx8XK?= To: sisyphus@altlinux.ru Date: Fri, 7 Mar 2003 16:40:41 +0300 User-Agent: KMail/1.5 References: <20030303122026.GD16534@basalt.office.altlinux.org> <200303071558.52459.serpiph@entek.ru> <20030307131947.GA3233@ifirst.ru> In-Reply-To: <20030307131947.GA3233@ifirst.ru> MIME-Version: 1.0 Content-Type: text/plain; charset="koi8-r" Content-Transfer-Encoding: 8bit Content-Disposition: inline Message-Id: <200303071640.41314.serpiph@entek.ru> Subject: [sisyphus] Re: mailman =?koi8-r?b?08zPzcHM09E=?= Sender: sisyphus-admin@altlinux.ru Errors-To: sisyphus-admin@altlinux.ru X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.0.9 Precedence: bulk Reply-To: sisyphus@altlinux.ru X-Reply-To: serpiph@entek.ru List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: В сообщении от 7 Март 2003 16:19 Artem K. Jouravsky написал: > On Fri, Mar 07, 2003 at 03:58:52PM +0300, Епифанов Сергей wrote: > > В сообщении от 7 Март 2003 15:23 Artem K. Jouravsky написал: > > > On Fri, Mar 07, 2003 at 02:59:54PM +0300, Епифанов Сергей wrote: > > > > В сообщении от 6 Март 2003 17:13 Artem K. Jouravsky написал: > > > > > Думаю, ответ надо искать там же, где ответ на вопрос, почему не > > > > > работает SGID > > > > > > > > Думаю, ответ здесь: у каждого файла есть 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? -- С уважением, Епифанов Сергей