From owner-freebsd-ports Wed Nov 15 09:00:52 1995 Return-Path: owner-ports Received: (from root@localhost) by freefall.freebsd.org (8.6.12/8.6.6) id JAA23644 for ports-outgoing; Wed, 15 Nov 1995 09:00:52 -0800 Received: from Relay1.Austria.EU.net (relay1.Austria.EU.net [192.92.138.47]) by freefall.freebsd.org (8.6.12/8.6.6) with SMTP id JAA23608 for ; Wed, 15 Nov 1995 09:00:38 -0800 From: marino.ladavac@aut.alcatel.at Received: from dnisun.aut.alcatel.at by Relay1.Austria.EU.net with SMTP id AA25995 (5.67b/IDA-1.5 for ); Wed, 15 Nov 1995 18:00:12 +0100 Received: from atuhc16 by dnisun.aut.alcatel.at (4.1/SMI-4.1/AAA-1.29/main) id AA10250; Wed, 15 Nov 95 17:59:49 +0100 Message-Id: <9511151659.AA10250@atuhc16.dnisun.aut.alcatel.at> Received: by atuhc16 (1.38.193.4/16.2) id AA03157; Wed, 15 Nov 1995 17:59:44 +0100 Subject: Getting non-ingres user to run ingres To: ports@freebsd.org Date: Wed, 15 Nov 95 17:59:43 MET Cc: lenzi@cwbone.bsi.com.br Mailer: Elm [revision: 70.85] Sender: owner-ports@freebsd.org Precedence: bulk Hi, the recently posted port of University INGRES contains a bug in creatdb.c which disables anyone but ingres user to create a database, thus rendering the create access right useless. The following hack seems to fix it: /Alby *** creatdb.c.old Wed Nov 15 00:52:47 1995 --- creatdb.c Wed Nov 15 00:36:38 1995 *************** *** 360,366 **** exit(-1); } /* create it */ ! if (setuid(getuid())) syserr("setuid"); if (setgid(getegid())) syserr("setgid"); --- 360,366 ---- exit(-1); } /* create it */ ! if (setuid(geteuid())) syserr("setuid"); if (setgid(getegid())) syserr("setgid"); *************** *** 370,376 **** if (i == 0) { /* split off directory */ *(p = (char *) rindex(Dbpath, '/')) = '\0'; ! chdir(Dbpath); *p++ = '/'; execlp("mkdir", "mkdir", p, 0); syserr("exec mkdir"); --- 370,377 ---- if (i == 0) { /* split off directory */ *(p = (char *) rindex(Dbpath, '/')) = '\0'; ! if (chdir(Dbpath) < 0) ! syserr("chdir %s", Dbpath); *p++ = '/'; execlp("mkdir", "mkdir", p, 0); syserr("exec mkdir"); *************** *** 388,394 **** if (i < 0) syserr("fork 2"); if (i == 0) { ! setuid(getuid()); if (chmod(".", 0777)) syserr("chmod"); exit(0); --- 389,395 ---- if (i < 0) syserr("fork 2"); if (i == 0) { ! setuid(geteuid()); if (chmod(".", 0777)) syserr("chmod"); exit(0);