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-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.
/* 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.
}
static void
-print_special (PSID_IDENTIFIER_AUTHORITY auth, BYTE cnt,
- DWORD sub1, DWORD sub2, DWORD sub3, DWORD sub4,
- DWORD sub5, DWORD sub6, DWORD sub7, DWORD sub8)
+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)
{
WCHAR grp[GNLEN + 1], dom[MAX_DOMAIN_NAME_LEN + 1];
DWORD glen, dlen, rid;
}
}
+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)
{
if (argc == 1)
{
- print_special (&sid_nt_auth, 1, SECURITY_LOCAL_SYSTEM_RID,
- 0, 0, 0, 0, 0, 0, 0);
+ print_special_by_sid (&sid_nt_auth, 1, SECURITY_LOCAL_SYSTEM_RID,
+ 0, 0, 0, 0, 0, 0, 0);
if (in_domain)
{
if (!enum_local_groups (TRUE, NULL, sep_char, id_offset,
/* Get 'system' group */
if (!disp_groupname && print_system && print_builtin && print_domlist)
- print_special (&sid_nt_auth, 1, SECURITY_LOCAL_SYSTEM_RID,
- 0, 0, 0, 0, 0, 0, 0);
+ {
+ 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)
/* 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.
}
static void
-print_special (PSID_IDENTIFIER_AUTHORITY auth, BYTE cnt,
- DWORD sub1, DWORD sub2, DWORD sub3, DWORD sub4,
- DWORD sub5, DWORD sub6, DWORD sub7, DWORD sub8)
+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)
{
WCHAR user[UNLEN + 1], dom[MAX_DOMAIN_NAME_LEN + 1];
DWORD len, len2, rid;
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 ()
{
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,
- DOMAIN_ALIAS_RID_ADMINS, 0, 0, 0, 0, 0, 0);
+ 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;