* mkgroup.c (print_special_by_sid): Rename from print_special. Change
calls throughout. (print_special_by_name): New function. (main): Call print_special_by_name for TrustedInstaller account. * mkpasswd.c (print_special_by_sid): Rename from print_special. Change calls throughout. (print_special_by_name): New function. (enum_std_accounts): Call print_special_by_name for TrustedInstaller account.
This commit is contained in:
		| @@ -1,3 +1,15 @@ | ||||
| 2012-04-05  Corinna Vinschen  <corinna@vinschen.de> | ||||
|  | ||||
| 	* mkgroup.c (print_special_by_sid): Rename from print_special.  Change | ||||
| 	calls throughout. | ||||
| 	(print_special_by_name): New function. | ||||
| 	(main): Call print_special_by_name for TrustedInstaller account. | ||||
| 	* mkpasswd.c (print_special_by_sid): Rename from print_special.  Change | ||||
| 	calls throughout. | ||||
| 	(print_special_by_name): New function. | ||||
| 	(enum_std_accounts): Call print_special_by_name for TrustedInstaller | ||||
| 	account. | ||||
|  | ||||
| 2012-02-24  Yaakov Selkowitz  <yselkowitz@users.sourceforge.net> | ||||
|  | ||||
| 	* pldd.c: Fix typo in license header. | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| /* mkgroup.c: | ||||
|  | ||||
|    Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, | ||||
|    2007, 2008, 2009, 2010, 2011 Red Hat, Inc. | ||||
|    2007, 2008, 2009, 2010, 2011, 2012 Red Hat, Inc. | ||||
|  | ||||
|    This file is part of Cygwin. | ||||
|  | ||||
| @@ -558,7 +558,7 @@ enum_groups (BOOL domain, domlist_t *dom_or_machine, const char *sep, | ||||
| } | ||||
|  | ||||
| static void | ||||
| print_special (PSID_IDENTIFIER_AUTHORITY auth, BYTE cnt, | ||||
| print_special_by_sid (PSID_IDENTIFIER_AUTHORITY auth, BYTE cnt, | ||||
| 		      DWORD sub1, DWORD sub2, DWORD sub3, DWORD sub4, | ||||
| 		      DWORD sub5, DWORD sub6, DWORD sub7, DWORD sub8) | ||||
| { | ||||
| @@ -597,6 +597,23 @@ print_special (PSID_IDENTIFIER_AUTHORITY auth, BYTE cnt, | ||||
|     } | ||||
| } | ||||
|  | ||||
| static void | ||||
| print_special_by_name (PCWSTR name, gid_t gid) | ||||
| { | ||||
|   DWORD size = 256, dom_size = 256; | ||||
|   PSID sid = (PSID) alloca (size); | ||||
|   WCHAR dom[dom_size]; | ||||
|   SID_NAME_USE use; | ||||
|  | ||||
|   PWCHAR name_only = wcschr (name, L'\\'); | ||||
|   if (name_only) | ||||
|     ++name_only; | ||||
|  | ||||
|   if (LookupAccountNameW (NULL, name, sid, &size, dom, &dom_size, &use)) | ||||
|     printf ("%ls:%s:%lu:\n", | ||||
| 	    name_only ?: name, put_sid (sid), (unsigned long) gid); | ||||
| } | ||||
|  | ||||
| static int | ||||
| usage (FILE * stream) | ||||
| { | ||||
| @@ -730,7 +747,7 @@ main (int argc, char **argv) | ||||
|  | ||||
|   if (argc == 1) | ||||
|     { | ||||
|       print_special (&sid_nt_auth, 1, SECURITY_LOCAL_SYSTEM_RID, | ||||
|       print_special_by_sid (&sid_nt_auth, 1, SECURITY_LOCAL_SYSTEM_RID, | ||||
| 			    0, 0, 0, 0, 0, 0, 0); | ||||
|       if (in_domain) | ||||
| 	{ | ||||
| @@ -857,8 +874,11 @@ skip: | ||||
|  | ||||
|   /* Get 'system' group */ | ||||
|   if (!disp_groupname && print_system && print_builtin && print_domlist) | ||||
|     print_special (&sid_nt_auth, 1, SECURITY_LOCAL_SYSTEM_RID, | ||||
|     { | ||||
|       print_special_by_sid (&sid_nt_auth, 1, SECURITY_LOCAL_SYSTEM_RID, | ||||
| 			    0, 0, 0, 0, 0, 0, 0); | ||||
|       print_special_by_name (L"NT SERVICE\\TrustedInstaller", -2); | ||||
|     } | ||||
|  | ||||
|   off = id_offset; | ||||
|   for (i = 0; i < print_domlist; ++i) | ||||
|   | ||||
| @@ -1,7 +1,7 @@ | ||||
| /* mkpasswd.c: | ||||
|  | ||||
|    Copyright 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2005, 2006, | ||||
|    2008, 2009, 2010, 2011 Red Hat, Inc. | ||||
|    2008, 2009, 2010, 2011, 2012 Red Hat, Inc. | ||||
|  | ||||
|    This file is part of Cygwin. | ||||
|  | ||||
| @@ -455,7 +455,7 @@ enum_users (BOOL domain, domlist_t *dom_or_machine, const char *sep, | ||||
| } | ||||
|  | ||||
| static void | ||||
| print_special (PSID_IDENTIFIER_AUTHORITY auth, BYTE cnt, | ||||
| print_special_by_sid (PSID_IDENTIFIER_AUTHORITY auth, BYTE cnt, | ||||
| 		      DWORD sub1, DWORD sub2, DWORD sub3, DWORD sub4, | ||||
| 		      DWORD sub5, DWORD sub6, DWORD sub7, DWORD sub8) | ||||
| { | ||||
| @@ -580,6 +580,29 @@ print_version () | ||||
| 	  strrchr (__DATE__, ' ') + 1); | ||||
| } | ||||
|  | ||||
| static void | ||||
| print_special_by_name (PCWSTR name, uid_t uid, gid_t gid) | ||||
| { | ||||
|   DWORD size = 256, dom_size = 256; | ||||
|   PSID sid = (PSID) alloca (size); | ||||
|   WCHAR dom[dom_size]; | ||||
|   SID_NAME_USE use; | ||||
|  | ||||
|   PWCHAR name_only = wcschr (name, L'\\'); | ||||
|   if (name_only) | ||||
|     ++name_only; | ||||
|  | ||||
|   if (LookupAccountNameW (NULL, name, sid, &size, dom, &dom_size, &use)) | ||||
|     printf ("%ls:*:%lu:%lu:U-%ls%s%ls,%s::\n", | ||||
| 	    name_only ?: name, | ||||
| 	    (unsigned long) uid, | ||||
| 	    (unsigned long) gid, | ||||
| 	    name_only ? dom : L"", | ||||
| 	    name_only ? "\\" : "", | ||||
| 	    name_only ?: name, | ||||
| 	    put_sid (sid)); | ||||
| } | ||||
|  | ||||
| static void | ||||
| enum_std_accounts () | ||||
| { | ||||
| @@ -588,8 +611,10 @@ enum_std_accounts () | ||||
|   printf ("LocalService:*:19:544:U-NT AUTHORITY\\LocalService,S-1-5-19::\n"); | ||||
|   printf ("NetworkService:*:20:544:U-NT AUTHORITY\\NetworkService,S-1-5-20::\n"); | ||||
|   /* Get 'administrators' group (has localized name). */ | ||||
|   print_special (&sid_nt_auth, 2, SECURITY_BUILTIN_DOMAIN_RID, | ||||
|   print_special_by_sid (&sid_nt_auth, 2, SECURITY_BUILTIN_DOMAIN_RID, | ||||
| 			DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0); | ||||
|   /* Fetch "TrustedInstaller" account starting with Vista. */ | ||||
|   print_special_by_name (L"NT SERVICE\\TrustedInstaller", -2, -2); | ||||
| } | ||||
|  | ||||
| static PPOLICY_PRIMARY_DOMAIN_INFO p_dom; | ||||
|   | ||||
		Reference in New Issue
	
	Block a user