* mkgroup.c: Drop support for NT4 domains.
* mkpasswd.c: Ditto. (psx_dir): Remove. (current_user): Drop support for -m option. Use $HOME as is since it's a POSIX path anyway. (enum_users): Drop support for -m option. (usage): Mention -m option as ignored. (main): Drop support for -m option. Mark ignored options as deprecated. * utils.sgml (mkpasswd): Remove description of -m option.
This commit is contained in:
		| @@ -1,3 +1,15 @@ | |||||||
|  | 2011-12-01  Corinna Vinschen  <corinna@vinschen.de> | ||||||
|  |  | ||||||
|  | 	* mkgroup.c: Drop support for NT4 domains. | ||||||
|  | 	* mkpasswd.c: Ditto. | ||||||
|  | 	(psx_dir): Remove. | ||||||
|  | 	(current_user): Drop support for -m option.  Use $HOME as is since it's | ||||||
|  | 	a POSIX path anyway. | ||||||
|  | 	(enum_users): Drop support for -m option. | ||||||
|  | 	(usage): Mention -m option as ignored. | ||||||
|  | 	(main): Drop support for -m option.  Mark ignored options as deprecated. | ||||||
|  | 	* utils.sgml (mkpasswd): Remove description of -m option. | ||||||
|  |  | ||||||
| 2011-11-28  Corinna Vinschen  <corinna@vinschen.de> | 2011-11-28  Corinna Vinschen  <corinna@vinschen.de> | ||||||
|  |  | ||||||
| 	* locale.cc (print_locale_with_codeset): Fetch Windows path as UNICODE | 	* locale.cc (print_locale_with_codeset): Fetch Windows path as UNICODE | ||||||
|   | |||||||
| @@ -39,8 +39,6 @@ | |||||||
| SID_IDENTIFIER_AUTHORITY sid_world_auth = {SECURITY_WORLD_SID_AUTHORITY}; | SID_IDENTIFIER_AUTHORITY sid_world_auth = {SECURITY_WORLD_SID_AUTHORITY}; | ||||||
| SID_IDENTIFIER_AUTHORITY sid_nt_auth = {SECURITY_NT_AUTHORITY}; | SID_IDENTIFIER_AUTHORITY sid_nt_auth = {SECURITY_NT_AUTHORITY}; | ||||||
|  |  | ||||||
| NET_API_STATUS WINAPI (*dsgetdcname)(LPWSTR,LPWSTR,GUID*,LPWSTR,ULONG,PDOMAIN_CONTROLLER_INFOW*); |  | ||||||
|  |  | ||||||
| #ifndef min | #ifndef min | ||||||
| #define min(a,b) (((a)<(b))?(a):(b)) | #define min(a,b) (((a)<(b))?(a):(b)) | ||||||
| #endif | #endif | ||||||
| @@ -69,58 +67,28 @@ _print_win_error (DWORD code, int line) | |||||||
|     fprintf (stderr, "mkgroup (%d): error %lu", line, code); |     fprintf (stderr, "mkgroup (%d): error %lu", line, code); | ||||||
| } | } | ||||||
|  |  | ||||||
| static void |  | ||||||
| load_dsgetdcname () |  | ||||||
| { |  | ||||||
|   HANDLE h = LoadLibrary ("netapi32.dll"); |  | ||||||
|   if (h) |  | ||||||
|     dsgetdcname = (void *) GetProcAddress (h, "DsGetDcNameW"); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static PWCHAR | static PWCHAR | ||||||
| get_dcname (char *domain) | get_dcname (char *domain) | ||||||
| { | { | ||||||
|   static WCHAR server[INTERNET_MAX_HOST_NAME_LENGTH + 1]; |   static WCHAR server[INTERNET_MAX_HOST_NAME_LENGTH + 1]; | ||||||
|   DWORD rc; |   DWORD rc; | ||||||
|   PWCHAR servername; |  | ||||||
|   WCHAR domain_name[MAX_DOMAIN_NAME_LEN + 1]; |   WCHAR domain_name[MAX_DOMAIN_NAME_LEN + 1]; | ||||||
|   PDOMAIN_CONTROLLER_INFOW pdci = NULL; |   PDOMAIN_CONTROLLER_INFOW pdci = NULL; | ||||||
|  |  | ||||||
|   if (dsgetdcname) |   if (domain) | ||||||
|     { |     { | ||||||
|       if (domain) |       mbstowcs (domain_name, domain, strlen (domain) + 1); | ||||||
| 	{ |       rc = DsGetDcNameW (NULL, domain_name, NULL, NULL, 0, &pdci); | ||||||
| 	  mbstowcs (domain_name, domain, strlen (domain) + 1); |  | ||||||
| 	  rc = dsgetdcname (NULL, domain_name, NULL, NULL, 0, &pdci); |  | ||||||
| 	} |  | ||||||
|       else |  | ||||||
| 	rc = dsgetdcname (NULL, NULL, NULL, NULL, 0, &pdci); |  | ||||||
|       if (rc != ERROR_SUCCESS) |  | ||||||
| 	{ |  | ||||||
| 	  print_win_error (rc); |  | ||||||
| 	  return (PWCHAR) -1; |  | ||||||
| 	} |  | ||||||
|       wcscpy (server, pdci->DomainControllerName); |  | ||||||
|       NetApiBufferFree (pdci); |  | ||||||
|     } |     } | ||||||
|   else |   else | ||||||
|  |     rc = DsGetDcNameW (NULL, NULL, NULL, NULL, 0, &pdci); | ||||||
|  |   if (rc != ERROR_SUCCESS) | ||||||
|     { |     { | ||||||
|       rc = NetGetDCName (NULL, NULL, (void *) &servername); |       print_win_error (rc); | ||||||
|       if (rc == ERROR_SUCCESS && domain) |       return (PWCHAR) -1; | ||||||
| 	{ |  | ||||||
| 	  LPWSTR server = servername; |  | ||||||
| 	  mbstowcs (domain_name, domain, strlen (domain) + 1); |  | ||||||
| 	  rc = NetGetDCName (server, domain_name, (void *) &servername); |  | ||||||
| 	  NetApiBufferFree (server); |  | ||||||
| 	} |  | ||||||
|       if (rc != ERROR_SUCCESS) |  | ||||||
| 	{ |  | ||||||
| 	  print_win_error(rc); |  | ||||||
| 	  return (PWCHAR) -1; |  | ||||||
| 	} |  | ||||||
|       wcscpy (server, servername); |  | ||||||
|       NetApiBufferFree ((PVOID) servername); |  | ||||||
|     } |     } | ||||||
|  |   wcscpy (server, pdci->DomainControllerName); | ||||||
|  |   NetApiBufferFree (pdci); | ||||||
|   return server; |   return server; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -757,7 +725,6 @@ main (int argc, char **argv) | |||||||
|   setlocale (LC_CTYPE, ""); |   setlocale (LC_CTYPE, ""); | ||||||
|   if (!strcmp (setlocale (LC_CTYPE, NULL), "C")) |   if (!strcmp (setlocale (LC_CTYPE, NULL), "C")) | ||||||
|     setlocale (LC_CTYPE, "en_US.UTF-8"); |     setlocale (LC_CTYPE, "en_US.UTF-8"); | ||||||
|   load_dsgetdcname (); |  | ||||||
|   in_domain = fetch_primary_domain (); |   in_domain = fetch_primary_domain (); | ||||||
|   fetch_current_pgrp_sid (); |   fetch_current_pgrp_sid (); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -39,8 +39,6 @@ | |||||||
| SID_IDENTIFIER_AUTHORITY sid_world_auth = {SECURITY_WORLD_SID_AUTHORITY}; | SID_IDENTIFIER_AUTHORITY sid_world_auth = {SECURITY_WORLD_SID_AUTHORITY}; | ||||||
| SID_IDENTIFIER_AUTHORITY sid_nt_auth = {SECURITY_NT_AUTHORITY}; | SID_IDENTIFIER_AUTHORITY sid_nt_auth = {SECURITY_NT_AUTHORITY}; | ||||||
|  |  | ||||||
| NET_API_STATUS WINAPI (*dsgetdcname)(LPWSTR,LPWSTR,GUID*,LPWSTR,ULONG,PDOMAIN_CONTROLLER_INFOW*); |  | ||||||
|  |  | ||||||
| #ifndef min | #ifndef min | ||||||
| #define min(a,b) (((a)<(b))?(a):(b)) | #define min(a,b) (((a)<(b))?(a):(b)) | ||||||
| #endif | #endif | ||||||
| @@ -69,59 +67,28 @@ _print_win_error(DWORD code, int line) | |||||||
|     fprintf (stderr, "mkpasswd (%d): error %lu", line, code); |     fprintf (stderr, "mkpasswd (%d): error %lu", line, code); | ||||||
| } | } | ||||||
|  |  | ||||||
| static void |  | ||||||
| load_dsgetdcname () |  | ||||||
| { |  | ||||||
|   HANDLE h = LoadLibrary ("netapi32.dll"); |  | ||||||
|  |  | ||||||
|   if (h) |  | ||||||
|     dsgetdcname = (void *) GetProcAddress (h, "DsGetDcNameW"); |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static PWCHAR | static PWCHAR | ||||||
| get_dcname (char *domain) | get_dcname (char *domain) | ||||||
| { | { | ||||||
|   static WCHAR server[INTERNET_MAX_HOST_NAME_LENGTH + 1]; |   static WCHAR server[INTERNET_MAX_HOST_NAME_LENGTH + 1]; | ||||||
|   DWORD rc; |   DWORD rc; | ||||||
|   PWCHAR servername; |  | ||||||
|   WCHAR domain_name[MAX_DOMAIN_NAME_LEN + 1]; |   WCHAR domain_name[MAX_DOMAIN_NAME_LEN + 1]; | ||||||
|   PDOMAIN_CONTROLLER_INFOW pdci = NULL; |   PDOMAIN_CONTROLLER_INFOW pdci = NULL; | ||||||
|  |  | ||||||
|   if (dsgetdcname) |   if (domain) | ||||||
|     { |     { | ||||||
|       if (domain) |       mbstowcs (domain_name, domain, strlen (domain) + 1); | ||||||
| 	{ |       rc = DsGetDcNameW (NULL, domain_name, NULL, NULL, 0, &pdci); | ||||||
| 	  mbstowcs (domain_name, domain, strlen (domain) + 1); |  | ||||||
| 	  rc = dsgetdcname (NULL, domain_name, NULL, NULL, 0, &pdci); |  | ||||||
| 	} |  | ||||||
|       else |  | ||||||
| 	rc = dsgetdcname (NULL, NULL, NULL, NULL, 0, &pdci); |  | ||||||
|       if (rc != ERROR_SUCCESS) |  | ||||||
| 	{ |  | ||||||
| 	  print_win_error(rc); |  | ||||||
| 	  return (PWCHAR) -1; |  | ||||||
| 	} |  | ||||||
|       wcscpy (server, pdci->DomainControllerName); |  | ||||||
|       NetApiBufferFree (pdci); |  | ||||||
|     } |     } | ||||||
|   else |   else | ||||||
|  |     rc = DsGetDcNameW (NULL, NULL, NULL, NULL, 0, &pdci); | ||||||
|  |   if (rc != ERROR_SUCCESS) | ||||||
|     { |     { | ||||||
|       rc = NetGetDCName (NULL, NULL, (void *) &servername); |       print_win_error (rc); | ||||||
|       if (rc == ERROR_SUCCESS && domain) |       return (PWCHAR) -1; | ||||||
| 	{ |  | ||||||
| 	  LPWSTR server = servername; |  | ||||||
| 	  mbstowcs (domain_name, domain, strlen (domain) + 1); |  | ||||||
| 	  rc = NetGetDCName (server, domain_name, (void *) &servername); |  | ||||||
| 	  NetApiBufferFree (server); |  | ||||||
| 	} |  | ||||||
|       if (rc != ERROR_SUCCESS) |  | ||||||
| 	{ |  | ||||||
| 	  print_win_error(rc); |  | ||||||
| 	  return (PWCHAR) -1; |  | ||||||
| 	} |  | ||||||
|       wcscpy (server, servername); |  | ||||||
|       NetApiBufferFree ((PVOID) servername); |  | ||||||
|     } |     } | ||||||
|  |   wcscpy (server, pdci->DomainControllerName); | ||||||
|  |   NetApiBufferFree (pdci); | ||||||
|   return server; |   return server; | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -143,29 +110,6 @@ put_sid (PSID sid) | |||||||
|   return s; |   return s; | ||||||
| } | } | ||||||
|  |  | ||||||
| static void |  | ||||||
| psx_dir (char *in, char *out) |  | ||||||
| { |  | ||||||
|   if (isalpha ((unsigned char) in[0]) && in[1] == ':') |  | ||||||
|     { |  | ||||||
|       sprintf (out, "/cygdrive/%c", in[0]); |  | ||||||
|       in += 2; |  | ||||||
|       out += strlen (out); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|   while (*in) |  | ||||||
|     { |  | ||||||
|       if (*in == '\\') |  | ||||||
| 	*out = '/'; |  | ||||||
|       else |  | ||||||
| 	*out = *in; |  | ||||||
|       in++; |  | ||||||
|       out++; |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|   *out = '\0'; |  | ||||||
| } |  | ||||||
|  |  | ||||||
| static void | static void | ||||||
| uni2ansi (LPWSTR wcs, char *mbs, int size) | uni2ansi (LPWSTR wcs, char *mbs, int size) | ||||||
| { | { | ||||||
| @@ -203,8 +147,8 @@ fetch_current_user_sid () | |||||||
| } | } | ||||||
|  |  | ||||||
| static void | static void | ||||||
| current_user (int print_cygpath, const char *sep, const char *passed_home_path, | current_user (const char *sep, const char *passed_home_path, DWORD id_offset, | ||||||
| 	      DWORD id_offset, const char *disp_username) | 	      const char *disp_username) | ||||||
| { | { | ||||||
|   WCHAR user[UNLEN + 1]; |   WCHAR user[UNLEN + 1]; | ||||||
|   WCHAR dom[MAX_DOMAIN_NAME_LEN + 1]; |   WCHAR dom[MAX_DOMAIN_NAME_LEN + 1]; | ||||||
| @@ -228,17 +172,9 @@ current_user (int print_cygpath, const char *sep, const char *passed_home_path, | |||||||
| 			     *GetSidSubAuthorityCount(curr_pgrp.psid) - 1); | 			     *GetSidSubAuthorityCount(curr_pgrp.psid) - 1); | ||||||
|   if (passed_home_path[0] == '\0') |   if (passed_home_path[0] == '\0') | ||||||
|     { |     { | ||||||
|       char *envhome = getenv ("HOME"); |       char *envhome = getenv ("HOME");	/* POSIX! */ | ||||||
|  |  | ||||||
|       if (envhome && envhome[0]) |       if (!envhome || envhome[0] == '\0') | ||||||
| 	{ |  | ||||||
| 	  if (print_cygpath) |  | ||||||
| 	    cygwin_conv_path (CCP_WIN_A_TO_POSIX | CCP_ABSOLUTE, envhome, |  | ||||||
| 			      homedir_psx, PATH_MAX); |  | ||||||
| 	  else |  | ||||||
| 	    psx_dir (envhome, homedir_psx); |  | ||||||
| 	} |  | ||||||
|       else |  | ||||||
| 	{ | 	{ | ||||||
| 	  wcstombs (stpncpy (homedir_psx, "/home/", sizeof (homedir_psx)), | 	  wcstombs (stpncpy (homedir_psx, "/home/", sizeof (homedir_psx)), | ||||||
| 		    user, sizeof (homedir_psx) - 6); | 		    user, sizeof (homedir_psx) - 6); | ||||||
| @@ -370,8 +306,8 @@ enum_unix_users (domlist_t *dom_or_machine, const char *sep, DWORD id_offset, | |||||||
|  |  | ||||||
| static int | static int | ||||||
| enum_users (BOOL domain, domlist_t *dom_or_machine, const char *sep, | enum_users (BOOL domain, domlist_t *dom_or_machine, const char *sep, | ||||||
| 	    int print_cygpath, const char *passed_home_path, DWORD id_offset, | 	    const char *passed_home_path, DWORD id_offset, char *disp_username, | ||||||
| 	    char *disp_username, int print_current) | 	    int print_current) | ||||||
| { | { | ||||||
|   WCHAR machine[INTERNET_MAX_HOST_NAME_LENGTH + 1]; |   WCHAR machine[INTERNET_MAX_HOST_NAME_LENGTH + 1]; | ||||||
|   PWCHAR servername = NULL; |   PWCHAR servername = NULL; | ||||||
| @@ -438,7 +374,6 @@ enum_users (BOOL domain, domlist_t *dom_or_machine, const char *sep, | |||||||
|       for (i = 0; i < entriesread; i++) |       for (i = 0; i < entriesread; i++) | ||||||
| 	{ | 	{ | ||||||
| 	  char homedir_psx[PATH_MAX]; | 	  char homedir_psx[PATH_MAX]; | ||||||
| 	  char homedir_w32[MAX_PATH]; |  | ||||||
| 	  WCHAR domain_name[MAX_DOMAIN_NAME_LEN + 1]; | 	  WCHAR domain_name[MAX_DOMAIN_NAME_LEN + 1]; | ||||||
| 	  DWORD domname_len = MAX_DOMAIN_NAME_LEN + 1; | 	  DWORD domname_len = MAX_DOMAIN_NAME_LEN + 1; | ||||||
| 	  char psid_buffer[MAX_SID_LEN]; | 	  char psid_buffer[MAX_SID_LEN]; | ||||||
| @@ -448,19 +383,13 @@ enum_users (BOOL domain, domlist_t *dom_or_machine, const char *sep, | |||||||
|  |  | ||||||
| 	  int uid = buffer[i].usri3_user_id; | 	  int uid = buffer[i].usri3_user_id; | ||||||
| 	  int gid = buffer[i].usri3_primary_group_id; | 	  int gid = buffer[i].usri3_primary_group_id; | ||||||
| 	  homedir_w32[0] = homedir_psx[0] = '\0'; | 	  homedir_psx[0] = '\0'; | ||||||
| 	  if (passed_home_path[0] == '\0') | 	  if (passed_home_path[0] == '\0') | ||||||
| 	    { | 	    { | ||||||
| 	      uni2ansi (buffer[i].usri3_home_dir, homedir_w32, | 	      if (buffer[i].usri3_home_dir[0] != L'\0') | ||||||
| 			sizeof (homedir_w32)); | 		cygwin_conv_path (CCP_WIN_W_TO_POSIX | CCP_ABSOLUTE, | ||||||
| 	      if (homedir_w32[0] != '\0') | 				  buffer[i].usri3_home_dir, homedir_psx, | ||||||
| 		{ | 				  PATH_MAX); | ||||||
| 		  if (print_cygpath) |  | ||||||
| 		    cygwin_conv_path (CCP_WIN_A_TO_POSIX | CCP_ABSOLUTE, |  | ||||||
| 				      homedir_w32, homedir_psx, PATH_MAX); |  | ||||||
| 		  else |  | ||||||
| 		    psx_dir (homedir_w32, homedir_psx); |  | ||||||
| 		} |  | ||||||
| 	      else | 	      else | ||||||
| 		uni2ansi (buffer[i].usri3_name, | 		uni2ansi (buffer[i].usri3_name, | ||||||
| 			  stpcpy (homedir_psx, "/home/"), PATH_MAX - 6); | 			  stpcpy (homedir_psx, "/home/"), PATH_MAX - 6); | ||||||
| @@ -598,13 +527,13 @@ usage (FILE * stream) | |||||||
| "                           one of -l, -L, -d, -D must be specified, too\n" | "                           one of -l, -L, -d, -D must be specified, too\n" | ||||||
| "   -p,--path-to-home path  use specified path instead of user account home dir\n" | "   -p,--path-to-home path  use specified path instead of user account home dir\n" | ||||||
| "                           or /home prefix\n" | "                           or /home prefix\n" | ||||||
| "   -m,--no-mount           don't use mount points for home dir\n" |  | ||||||
| "   -U,--unix userlist      additionally print UNIX users when using -l or -L\n" | "   -U,--unix userlist      additionally print UNIX users when using -l or -L\n" | ||||||
| "                           on a UNIX Samba server\n" | "                           on a UNIX Samba server\n" | ||||||
| "                           userlist is a comma-separated list of usernames\n" | "                           userlist is a comma-separated list of usernames\n" | ||||||
| "                           or uid ranges (root,-25,50-100).\n" | "                           or uid ranges (root,-25,50-100).\n" | ||||||
| "                           (enumerating large ranges can take a long time!)\n" | "                           (enumerating large ranges can take a long time!)\n" | ||||||
| "   -s,--no-sids            (ignored)\n" | "   -s,--no-sids            (ignored)\n" | ||||||
|  | "   -m,--no-mount           (ignored)\n" | ||||||
| "   -g,--local-groups       (ignored)\n" | "   -g,--local-groups       (ignored)\n" | ||||||
| "   -h,--help               displays this message\n" | "   -h,--help               displays this message\n" | ||||||
| "   -V,--version            version information and exit\n" | "   -V,--version            version information and exit\n" | ||||||
| @@ -692,7 +621,6 @@ main (int argc, char **argv) | |||||||
|   int print_domlist = 0; |   int print_domlist = 0; | ||||||
|   domlist_t domlist[32]; |   domlist_t domlist[32]; | ||||||
|   char *opt, *p, *ep; |   char *opt, *p, *ep; | ||||||
|   int print_cygpath = 1; |  | ||||||
|   int print_current = 0; |   int print_current = 0; | ||||||
|   char *print_unix = NULL; |   char *print_unix = NULL; | ||||||
|   const char *sep_char = "\\"; |   const char *sep_char = "\\"; | ||||||
| @@ -711,7 +639,6 @@ main (int argc, char **argv) | |||||||
|   setlocale (LC_CTYPE, ""); |   setlocale (LC_CTYPE, ""); | ||||||
|   if (!strcmp (setlocale (LC_CTYPE, NULL), "C")) |   if (!strcmp (setlocale (LC_CTYPE, NULL), "C")) | ||||||
|     setlocale (LC_CTYPE, "en_US.UTF-8"); |     setlocale (LC_CTYPE, "en_US.UTF-8"); | ||||||
|   load_dsgetdcname (); |  | ||||||
|   in_domain = fetch_primary_domain (); |   in_domain = fetch_primary_domain (); | ||||||
|   fetch_current_user_sid (); |   fetch_current_user_sid (); | ||||||
|  |  | ||||||
| @@ -719,10 +646,10 @@ main (int argc, char **argv) | |||||||
|     { |     { | ||||||
|       enum_std_accounts (); |       enum_std_accounts (); | ||||||
|       if (in_domain) |       if (in_domain) | ||||||
| 	enum_users (TRUE, NULL, sep_char, print_cygpath, passed_home_path, | 	enum_users (TRUE, NULL, sep_char, passed_home_path, 10000, | ||||||
| 		    10000, disp_username, 0); | 		    disp_username, 0); | ||||||
|       else |       else | ||||||
| 	enum_users (FALSE, NULL, sep_char, print_cygpath, passed_home_path, 0, | 	enum_users (FALSE, NULL, sep_char, passed_home_path, 0, | ||||||
| 		    disp_username, 0); | 		    disp_username, 0); | ||||||
|       return 0; |       return 0; | ||||||
|     } |     } | ||||||
| @@ -813,13 +740,6 @@ skip: | |||||||
| 	    return 1; | 	    return 1; | ||||||
| 	  } | 	  } | ||||||
| 	break; | 	break; | ||||||
|       case 'g': |  | ||||||
| 	break; |  | ||||||
|       case 's': |  | ||||||
| 	break; |  | ||||||
|       case 'm': |  | ||||||
| 	print_cygpath = 0; |  | ||||||
| 	break; |  | ||||||
|       case 'p': |       case 'p': | ||||||
| 	if (optarg[0] != '/') | 	if (optarg[0] != '/') | ||||||
| 	{ | 	{ | ||||||
| @@ -840,6 +760,10 @@ skip: | |||||||
|       case 'V': |       case 'V': | ||||||
| 	print_version (); | 	print_version (); | ||||||
| 	return 0; | 	return 0; | ||||||
|  |       case 'g':		/* deprecated */ | ||||||
|  |       case 's':		/* deprecated */ | ||||||
|  |       case 'm':		/* deprecated */ | ||||||
|  | 	break; | ||||||
|       default: |       default: | ||||||
| 	fprintf (stderr, "Try `%s --help' for more information.\n", | 	fprintf (stderr, "Try `%s --help' for more information.\n", | ||||||
| 		 program_invocation_short_name); | 		 program_invocation_short_name); | ||||||
| @@ -865,15 +789,14 @@ skip: | |||||||
| 	enum_unix_users (domlist + i, sep_char, my_off, print_unix); | 	enum_unix_users (domlist + i, sep_char, my_off, print_unix); | ||||||
|       if (!my_off && !disp_username) |       if (!my_off && !disp_username) | ||||||
| 	enum_std_accounts (); | 	enum_std_accounts (); | ||||||
|       enum_users (domlist[i].domain, domlist + i, sep_char, print_cygpath, |       enum_users (domlist[i].domain, domlist + i, sep_char, passed_home_path, | ||||||
| 		  passed_home_path, my_off, disp_username, print_current); | 		  my_off, disp_username, print_current); | ||||||
|       if (my_off) |       if (my_off) | ||||||
| 	off += id_offset; | 	off += id_offset; | ||||||
|     } |     } | ||||||
|  |  | ||||||
|   if (print_current && !got_curr_user) |   if (print_current && !got_curr_user) | ||||||
|     current_user (print_cygpath, sep_char, passed_home_path, off, |     current_user (sep_char, passed_home_path, off, disp_username); | ||||||
| 		  disp_username); |  | ||||||
|  |  | ||||||
|   return 0; |   return 0; | ||||||
| } | } | ||||||
|   | |||||||
| @@ -960,13 +960,13 @@ Options: | |||||||
|                            one of -l, -L, -d, -D must be specified, too |                            one of -l, -L, -d, -D must be specified, too | ||||||
|    -p,--path-to-home path  use specified path instead of user account home dir |    -p,--path-to-home path  use specified path instead of user account home dir | ||||||
|                            or /home prefix |                            or /home prefix | ||||||
|    -m,--no-mount           don't use mount points for home dir |  | ||||||
|    -U,--unix userlist      additionally print UNIX users when using -l or -L\ |    -U,--unix userlist      additionally print UNIX users when using -l or -L\ | ||||||
|                            on a UNIX Samba server |                            on a UNIX Samba server | ||||||
|                            userlist is a comma-separated list of usernames |                            userlist is a comma-separated list of usernames | ||||||
|                            or uid ranges (root,-25,50-100). |                            or uid ranges (root,-25,50-100). | ||||||
|                            (enumerating large ranges can take a long time!) |                            (enumerating large ranges can take a long time!) | ||||||
|    -s,--no-sids            (ignored) |    -s,--no-sids            (ignored) | ||||||
|  |    -m,--no-mount           (ignored) | ||||||
|    -g,--local-groups       (ignored) |    -g,--local-groups       (ignored) | ||||||
|    -h,--help               displays this message |    -h,--help               displays this message | ||||||
|    -V,--version            version information and exit |    -V,--version            version information and exit | ||||||
| @@ -1013,11 +1013,7 @@ domain/group separator, you can specify another separator using the | |||||||
| <literal>-S</literal> option, similar to the <command>mkgroup</command>. | <literal>-S</literal> option, similar to the <command>mkgroup</command>. | ||||||
| The <literal>-o</literal> option allows for special cases | The <literal>-o</literal> option allows for special cases | ||||||
| (such as multiple domains) where the UIDs might match otherwise. | (such as multiple domains) where the UIDs might match otherwise. | ||||||
| The <literal>-m</literal> option bypasses the current | The <literal>-p</literal> option causes <command>mkpasswd</command> to | ||||||
| mount table so that, for example, two users who have a Windows home  |  | ||||||
| directory of H: could mount them differently.  For more information on |  | ||||||
| SIDs, see <xref linkend="ntsec"></xref> in the Cygwin User's Guide.  The |  | ||||||
| <literal>-p</literal> option causes <command>mkpasswd</command> to |  | ||||||
| use the specified prefix instead of the account home dir or <literal>/home/ | use the specified prefix instead of the account home dir or <literal>/home/ | ||||||
| </literal>. For example, this command: | </literal>. For example, this command: | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user