* mkgroup.c (main): Call enum_groups with offset 0x30000 for local
machine, same as from DB. * mkpasswd.c (enum_unix_users): Set pw_passwd field to '*'. (enum_users): Ditto. (main): Call enum_users with offset of 0x30000 for local machine, same as from DB.
This commit is contained in:
parent
e7d7418270
commit
f3939c059c
|
@ -1,3 +1,12 @@
|
||||||
|
2014-11-27 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
|
* mkgroup.c (main): Call enum_groups with offset 0x30000 for local
|
||||||
|
machine, same as from DB.
|
||||||
|
* mkpasswd.c (enum_unix_users): Set pw_passwd field to '*'.
|
||||||
|
(enum_users): Ditto.
|
||||||
|
(main): Call enum_users with offset of 0x30000 for local machine,
|
||||||
|
same as from DB.
|
||||||
|
|
||||||
2014-11-24 Corinna Vinschen <corinna@vinschen.de>
|
2014-11-24 Corinna Vinschen <corinna@vinschen.de>
|
||||||
|
|
||||||
* passwd.c (GetPW): If server is NULL, and the user is not a local
|
* passwd.c (GetPW): If server is NULL, and the user is not a local
|
||||||
|
|
|
@ -559,8 +559,8 @@ main (int argc, char **argv)
|
||||||
DWORD id_offset = 0x10000, off;
|
DWORD id_offset = 0x10000, off;
|
||||||
int c, i;
|
int c, i;
|
||||||
char *disp_groupname = NULL;
|
char *disp_groupname = NULL;
|
||||||
//BOOL in_domain;
|
|
||||||
int optional_args = 0;
|
int optional_args = 0;
|
||||||
|
uintptr_t nss_src = cygwin_internal (CW_GETNSS_GRP_SRC);
|
||||||
|
|
||||||
if (!isatty (1))
|
if (!isatty (1))
|
||||||
setmode (1, O_BINARY);
|
setmode (1, O_BINARY);
|
||||||
|
@ -641,13 +641,13 @@ main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
/* If the system uses /etc/group exclusively as account DB,
|
/* If the system uses /etc/group exclusively as account DB,
|
||||||
create local group names the old fashioned way. */
|
create local group names the old fashioned way. */
|
||||||
if (cygwin_internal (CW_GETNSS_GRP_SRC) == NSS_SRC_FILES)
|
if (nss_src == NSS_SRC_FILES)
|
||||||
{
|
{
|
||||||
GetComputerNameExA (ComputerNameNetBIOS, cname, &csize);
|
GetComputerNameExA (ComputerNameNetBIOS, cname, &csize);
|
||||||
domlist[print_domlist].str = cname;
|
domlist[print_domlist].str = cname;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (cygwin_internal (CW_GETNSS_GRP_SRC) != NSS_SRC_FILES)
|
else if (nss_src != NSS_SRC_FILES)
|
||||||
{
|
{
|
||||||
/* If the system uses Windows account DBs, check if machine
|
/* If the system uses Windows account DBs, check if machine
|
||||||
name is local machine. If so, remove the domain name to
|
name is local machine. If so, remove the domain name to
|
||||||
|
@ -782,8 +782,9 @@ main (int argc, char **argv)
|
||||||
if (!enum_local_groups (domlist + i, sep_char, off, disp_groupname,
|
if (!enum_local_groups (domlist + i, sep_char, off, disp_groupname,
|
||||||
print_builtin, print_current))
|
print_builtin, print_current))
|
||||||
{
|
{
|
||||||
enum_groups (domlist + i, sep_char, off, disp_groupname,
|
enum_groups (domlist + i, sep_char,
|
||||||
print_current);
|
(nss_src == NSS_SRC_FILES) ? 0x30000 : off,
|
||||||
|
disp_groupname, print_current);
|
||||||
if (!domlist[i].domain && domlist[i].str && print_unix)
|
if (!domlist[i].domain && domlist[i].str && print_unix)
|
||||||
enum_unix_groups (domlist + i, sep_char, 0xff000000, print_unix);
|
enum_unix_groups (domlist + i, sep_char, 0xff000000, print_unix);
|
||||||
off += id_offset;
|
off += id_offset;
|
||||||
|
|
|
@ -169,7 +169,7 @@ enum_unix_users (domlist_t *mach, const char *sep, DWORD id_offset,
|
||||||
dom,
|
dom,
|
||||||
(dlen = MAX_DOMAIN_NAME_LEN + 1, &dlen),
|
(dlen = MAX_DOMAIN_NAME_LEN + 1, &dlen),
|
||||||
&acc_type))
|
&acc_type))
|
||||||
printf ("%s%s%ls:unused:%" PRIu32 ":99999:,%s::\n",
|
printf ("%s%s%ls:*:%" PRIu32 ":99999:,%s::\n",
|
||||||
"Unix_User",
|
"Unix_User",
|
||||||
sep,
|
sep,
|
||||||
user + 10,
|
user + 10,
|
||||||
|
@ -206,7 +206,7 @@ enum_unix_users (domlist_t *mach, const char *sep, DWORD id_offset,
|
||||||
(dlen = MAX_DOMAIN_NAME_LEN + 1, &dlen),
|
(dlen = MAX_DOMAIN_NAME_LEN + 1, &dlen),
|
||||||
&acc_type)
|
&acc_type)
|
||||||
&& !iswdigit (user[0]))
|
&& !iswdigit (user[0]))
|
||||||
printf ("%s%s%ls:unused:%" PRIu32 ":99999:,%s::\n",
|
printf ("%s%s%ls:*:%" PRIu32 ":99999:,%s::\n",
|
||||||
"Unix_User",
|
"Unix_User",
|
||||||
sep,
|
sep,
|
||||||
user,
|
user,
|
||||||
|
@ -333,7 +333,7 @@ enum_users (domlist_t *mach, const char *sep, const char *passed_home_path,
|
||||||
else if (EqualSid (curr_user.psid, psid))
|
else if (EqualSid (curr_user.psid, psid))
|
||||||
got_curr_user = TRUE;
|
got_curr_user = TRUE;
|
||||||
|
|
||||||
printf ("%ls%s%ls:unused:%" PRIu32 ":%" PRIu32
|
printf ("%ls%s%ls:*:%" PRIu32 ":%" PRIu32
|
||||||
":%ls%sU-%ls\\%ls,%s:%s:/bin/bash\n",
|
":%ls%sU-%ls\\%ls,%s:%s:/bin/bash\n",
|
||||||
mach->with_dom ? domain_name : L"",
|
mach->with_dom ? domain_name : L"",
|
||||||
mach->with_dom ? sep : "",
|
mach->with_dom ? sep : "",
|
||||||
|
@ -455,6 +455,7 @@ main (int argc, char **argv)
|
||||||
char *disp_username = NULL;
|
char *disp_username = NULL;
|
||||||
char passed_home_path[PATH_MAX];
|
char passed_home_path[PATH_MAX];
|
||||||
int optional_args = 0;
|
int optional_args = 0;
|
||||||
|
uintptr_t nss_src = cygwin_internal (CW_GETNSS_PWD_SRC);
|
||||||
|
|
||||||
passed_home_path[0] = '\0';
|
passed_home_path[0] = '\0';
|
||||||
if (!isatty (1))
|
if (!isatty (1))
|
||||||
|
@ -538,13 +539,13 @@ main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
/* If the system uses /etc/passwd exclusively as account DB,
|
/* If the system uses /etc/passwd exclusively as account DB,
|
||||||
create local group names the old fashioned way. */
|
create local group names the old fashioned way. */
|
||||||
if (cygwin_internal (CW_GETNSS_PWD_SRC) == NSS_SRC_FILES)
|
if (nss_src == NSS_SRC_FILES)
|
||||||
{
|
{
|
||||||
GetComputerNameExA (ComputerNameNetBIOS, cname, &csize);
|
GetComputerNameExA (ComputerNameNetBIOS, cname, &csize);
|
||||||
domlist[print_domlist].str = cname;
|
domlist[print_domlist].str = cname;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (cygwin_internal (CW_GETNSS_PWD_SRC) != NSS_SRC_FILES)
|
else if (nss_src != NSS_SRC_FILES)
|
||||||
{
|
{
|
||||||
/* If the system uses Windows account DBs, check if machine
|
/* If the system uses Windows account DBs, check if machine
|
||||||
name is local machine. If so, remove the domain name to
|
name is local machine. If so, remove the domain name to
|
||||||
|
@ -706,8 +707,9 @@ main (int argc, char **argv)
|
||||||
{
|
{
|
||||||
if (domlist[i].domain || !domlist[i].str)
|
if (domlist[i].domain || !domlist[i].str)
|
||||||
continue;
|
continue;
|
||||||
enum_users (domlist + i, sep_char, passed_home_path, off, disp_username,
|
enum_users (domlist + i, sep_char, passed_home_path,
|
||||||
print_current);
|
(nss_src == NSS_SRC_FILES) ? 0x30000 : off,
|
||||||
|
disp_username, print_current);
|
||||||
if (!domlist[i].domain && domlist[i].str && print_unix)
|
if (!domlist[i].domain && domlist[i].str && print_unix)
|
||||||
enum_unix_users (domlist + i, sep_char, 0xff000000, print_unix);
|
enum_unix_users (domlist + i, sep_char, 0xff000000, print_unix);
|
||||||
off += id_offset;
|
off += id_offset;
|
||||||
|
|
Loading…
Reference in New Issue