Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Message-ID: <17B78BDF120BD411B70100500422FC6309E4B5@IIS000> From: Bernard Dautrevaux To: Bernard Dautrevaux , "'Corinna Vinschen'" Cc: cygwin AT cygwin DOT com Subject: RE: Suggestion for setup Date: Wed, 6 Mar 2002 15:01:05 +0100 MIME-Version: 1.0 X-Mailer: Internet Mail Service (5.5.2653.19) Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 8bit X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id g26EEbP11961 > -----Original Message----- > From: Bernard Dautrevaux [mailto:Dautrevaux AT microprocess DOT com] > Sent: Wednesday, March 06, 2002 2:32 PM > To: 'Corinna Vinschen' > Cc: cygwin AT cygwin DOT com > Subject: RE: Suggestion for setup > > > > -----Original Message----- > > From: Corinna Vinschen [mailto:cygwin AT cygwin DOT com] > > Sent: Wednesday, March 06, 2002 10:19 AM > > To: cygwin AT cygwin DOT com > > Subject: Re: Suggestion for setup > > > > > > On Wed, Mar 06, 2002 at 10:01:22AM +0100, Bernard Dautrevaux wrote: > > > On the same ground, it would be nice if, when creating > > /etc/passwd and > > > /etc/group, setup.exe pass the "-d" flag to > > mkpasswd/mkgroup; otherwise, > > > ntsec is almost unusable for the (vast majority of) > > NT/2k/XP users that > > > happen to be in a Windows domain. > > > > > > I don't know what happens if "mkpasswd -d" is used on 9x/Me > > if not in a > > > domain, but this seems harmless on NT/2k/XP, so always > > passing -d seems > > > harmless in these cases. > > > > It's not harmless. mkpasswd -d will result in an error message on > > stand alone systems. > > Oh yes, I forgot that... By saying "harmless" I just wanted > to say that it > doesn't break anything, so you can ignore the error message > altogether, > something I actually do :-) > > > It's actually the other way around. mkpasswd -l > > is harmless on domain members and domain controllers. > > Yes but it doesn't give th eexpected result... What if we add a "-a" > argument (saying generate all possible entries, either local > or from the > domain), that in fact will just avoid th eerror message and > return code that > "-d" generates if it can't found a domain controller? > > Would a patch on these lines be acceptable, as a first step to allow > automatic generation of complete /etc/passwd and /etc/group > files during > cygwin install? As this is quite a simple patch, I proceed and here it is, for mkgroup.c and mkpasswd.c: *** winsup/utils/mkgroup.c 2001/04/26 19:02:52 1.3 --- winsup/utils/mkgroup.c 2002/03/06 14:10:18 *************** *** 367,370 **** --- 367,373 ---- fprintf (stderr, " specified (or from the current domain if there is\n"); fprintf (stderr, " no domain specified)\n"); + fprintf (stderr, " -a,--all print both local and global group information from the\n"); + fprintf (stderr, " specified domain (or from the current domain if there is\n"); + fprintf (stderr, " no domain specified) but do not complain if not in a domain\n"); fprintf (stderr, " -o,--id-offset offset change the default offset (10000) added to uids\n"); fprintf (stderr, " in domain accounts.\n"); *************** *** 416,419 **** --- 419,424 ---- switch (i)   { +   case 'a': +   print_domain = -1;   case 'l':   print_local = 1; *************** *** 439,443 **** if (!print_local && !print_domain) { !   fprintf (stderr, "%s: Specify one of `-l' or `-d'\n", argv[0]);   return 1;   } --- 444,448 ---- if (!print_local && !print_domain) { !   fprintf (stderr, "%s: Specify one of `-l', `-d' or `-a'\n", argv[0]);   return 1;   } *************** *** 447,451 ****   {   fprintf (stderr, "%s: A domain name is only accepted " !      "when `-d' is given.\n", argv[0]);   return 1;   } --- 452,456 ----   {   fprintf (stderr, "%s: A domain name is only accepted " !      "when `-d' or `-a' is given.\n", argv[0]);   return 1;   } *************** *** 545,553 **** if (rc != ERROR_SUCCESS)  { !   fprintf (stderr, "Cannot get PDC, code = %ld\n", rc); !   exit (1);  } ! ! enum_groups (servername, print_sids, print_users, id_offset); } --- 550,561 ---- if (rc != ERROR_SUCCESS)  { !   if (print_domain > 0) !   { !   fprintf (stderr, "Cannot get DC, code = %ld\n", rc); !   exit (1); !   }  } ! else !  enum_groups (servername, print_sids, print_users, id_offset); } *** winsup/utils/mkpasswd.c 2001/04/26 19:02:52 1.4 --- winsup/utils/mkpasswd.c 2002/03/06 14:10:19 *************** *** 321,324 **** --- 321,326 ---- fprintf (stderr, " -d,--domain print domain accounts (from current domain\n"); fprintf (stderr, " if no domain specified)\n"); + fprintf (stderr, " -a,--all print local and domain accounts (from current domain\n"); + fprintf (stderr, " if no domain specified) without complaining if not in domain\n"); fprintf (stderr, " -o,--id-offset offset change the default offset (10000) added to uids\n"); fprintf (stderr, " in domain accounts.\n"); *************** *** 379,382 **** --- 381,386 ----   switch (i)   { +   case 'a': +   print_domain = -1;   case 'l':   print_local = 1; *************** *** 416,420 ****  if (!print_local && !print_domain && !print_local_groups)   { !   fprintf (stderr, "%s: Specify one of `-l', `-d' or `-g'\n", argv[0]);   return 1;   } --- 420,424 ----  if (!print_local && !print_domain && !print_local_groups)   { !   fprintf (stderr, "%s: Specify one of `-l', `-d', `-a' or `-g'\n", argv[0]);   return 1;   } *************** *** 424,428 ****   {   fprintf (stderr, "%s: A domain name is only accepted " !      "when `-d' is given.\n", argv[0]);   return 1;   } --- 428,432 ----   {   fprintf (stderr, "%s: A domain name is only accepted " !      "when `-d' or `-a' is given.\n", argv[0]);   return 1;   } *************** *** 528,536 **** if (rc != ERROR_SUCCESS)  { !   fprintf (stderr, "Cannot get DC, code = %ld\n", rc); !   exit (1);  } ! ! enum_users (servername, print_sids, print_cygpath, passed_home_path, id_offset); } --- 532,543 ---- if (rc != ERROR_SUCCESS)  { !   if (print_domain > 0) !   { !   fprintf (stderr, "Cannot get DC, code = %ld\n", rc); !   exit (1); !   }  } ! else !  enum_users (servername, print_sids, print_cygpath, passed_home_path, id_offset); } The patch is simple enough I should not need to file a copyright assignment, isn't-it? Bernard -------------------------------------------- Bernard Dautrevaux Microprocess Ingenierie 97 bis, rue de Colombes 92400 COURBEVOIE FRANCE Tel: +33 (0) 1 47 68 80 80 Fax: +33 (0) 1 47 88 97 85 e-mail: dautrevaux AT microprocess DOT com b DOT dautrevaux AT usa DOT net -------------------------------------------- -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Bug reporting: http://cygwin.com/bugs.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/