Mail Archives: cygwin/2002/03/06/09:14:39
> -----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/
- Raw text -