public inbox for cygwin-patches@cygwin.com
 help / color / mirror / Atom feed
From: Johannes Schindelin <johannes.schindelin@gmx.de>
To: cygwin-patches@cygwin.com
Subject: [PATCH v2 0/2] Support deriving the current user's home directory via HOME
Date: Thu, 17 Dec 2015 18:05:00 -0000	[thread overview]
Message-ID: <cover.1450375424.git.johannes.schindelin@gmx.de> (raw)
In-Reply-To: <0Lg1Tn-1YnzUw0ScN-00pcgi@mail.gmx.com>

This patch mini-series supports Git for Windows' main strategy to
determine the current user's home directory by looking at the
environment variable HOME, falling back to HOMEDRIVE and HOMEPATH, and
if these variables are also unset, to USERPROFILE.

This strategy is a quick method to determine the home directory, and it
also allows users to override the home directory easily (e.g. in case
that their real home directory is a network share that is not all that
well handled by some commands such as cmd.exe's cd command).

Sorry for sending out v2 so late...!


Johannes Schindelin (2):
  Allow deriving the current user's home directory via the HOME variable
  Respect `db_home` setting even for the SYSTEM account

 winsup/cygwin/cygheap.h |  3 ++-
 winsup/cygwin/uinfo.cc  | 55 ++++++++++++++++++++++++++++++++++++++++++++++++-
 winsup/doc/ntsec.xml    | 20 ++++++++++++++++++
 3 files changed, 76 insertions(+), 2 deletions(-)

Interdiff vs v1:

diff --git a/winsup/cygwin/uinfo.cc b/winsup/cygwin/uinfo.cc
index 525a90e..8c51b82 100644
--- a/winsup/cygwin/uinfo.cc
+++ b/winsup/cygwin/uinfo.cc
@@ -1066,7 +1066,8 @@ cygheap_pwdgrp::get_home (cyg_ldap *pldap, cygpsid &sid, PCWSTR dom,
 	    }
 	  break;
 	case NSS_SCHEME_ENV:
-	  home = fetch_home_env ();
+	  if (RtlEqualSid (sid, cygheap->user.sid ()))
+	    home = fetch_home_env ();
 	  break;
 	}
     }
@@ -1100,7 +1101,8 @@ cygheap_pwdgrp::get_home (PUSER_INFO_3 ui, cygpsid &sid, PCWSTR dom,
 				  dom, NULL, name, full_qualified);
 	  break;
 	case NSS_SCHEME_ENV:
-	  home = fetch_home_env ();
+	  if (RtlEqualSid (sid, cygheap->user.sid ()))
+	    home = fetch_home_env ();
 	  break;
 	}
     }
@@ -2127,7 +2129,11 @@ pwdgrp::fetch_account_from_windows (fetch_user_arg_t &arg, cyg_ldap *pldap)
 	 it to a well-known group here. */
       if (acc_type == SidTypeUser
 	  && (sid_sub_auth_count (sid) <= 3 || sid_id_auth (sid) == 11))
-	acc_type = SidTypeWellKnownGroup;
+	{
+	  acc_type = SidTypeWellKnownGroup;
+	  home = cygheap->pg.get_home (pldap, sid, dom, domain, name,
+				       fully_qualified_name);
+	}
       switch (acc_type)
       	{
 	case SidTypeUser:
diff --git a/winsup/doc/ntsec.xml b/winsup/doc/ntsec.xml
index 9cee58c..14c37c5 100644
--- a/winsup/doc/ntsec.xml
+++ b/winsup/doc/ntsec.xml
@@ -1356,8 +1356,8 @@ schemata are the following:
   </varlistentry>
   <varlistentry>
     <term><literal>env</literal></term>
-    <listitem>Derives the home directory from the environment variable
-	      <literal>HOME</literal> (falling back to
+    <listitem>Derives the home directory of the current user from the
+	      environment variable <literal>HOME</literal> (falling back to
 	      <literal>HOMEDRIVE\HOMEPATH</literal> and
 	      <literal>USERPROFILE</literal>, in that order).  This is faster
 	      than the <term><literal>windows</literal></term> schema at the
@@ -1498,8 +1498,8 @@ of each schema when used with <literal>db_home:</literal>
   </varlistentry>
   <varlistentry>
     <term><literal>env</literal></term>
-    <listitem>Derives the home directory from the environment variable
-	      <literal>HOME</literal> (falling back to
+    <listitem>Derives the home directory of the current user from the
+	      environment variable <literal>HOME</literal> (falling back to
 	      <literal>HOMEDRIVE\HOMEPATH</literal> and
 	      <literal>USERPROFILE</literal>, in that order).  This is faster
 	      than the <term><literal>windows</literal></term> schema at the

-- 
2.6.3.windows.1.300.g1c25e49

  parent reply	other threads:[~2015-12-17 18:05 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-16 13:06 [PATCH] Allow overriding the home directory via the HOME variable Johannes Schindelin
2015-10-21 18:32 ` Corinna Vinschen
2015-10-22 15:38   ` Johannes Schindelin
2015-10-23  9:10     ` Corinna Vinschen
2015-10-23  9:41       ` Corinna Vinschen
2015-10-23 12:00         ` Johannes Schindelin
2015-12-17 18:05 ` Johannes Schindelin [this message]
2015-12-17 18:05   ` [PATCH v2 1/2] Allow deriving the current user's " Johannes Schindelin
2015-12-17 20:20     ` Corinna Vinschen
2022-09-21 11:58       ` Johannes Schindelin
2022-10-18 17:02         ` Corinna Vinschen
2022-10-23 21:04           ` Johannes Schindelin
2022-10-24 11:37             ` Corinna Vinschen
2022-11-10 15:16               ` Johannes Schindelin
2022-11-10 15:22                 ` Corinna Vinschen
2022-11-18  8:18                   ` Johannes Schindelin
2022-11-21 11:41                     ` Corinna Vinschen
2023-03-28  8:21                       ` Johannes Schindelin
2015-12-17 18:05   ` [PATCH v2 2/2] Respect `db_home` setting even for the SYSTEM account Johannes Schindelin
2015-12-17 20:49     ` Corinna Vinschen
2015-12-17 21:02       ` Corinna Vinschen
2022-09-21 12:00       ` Johannes Schindelin
2022-09-21 11:51   ` [PATCH v3 0/3] Support deriving the current user's home directory via HOME Johannes Schindelin
2022-09-21 11:51     ` [PATCH v3 1/3] Allow deriving the current user's home directory via the HOME variable Johannes Schindelin
2022-09-21 11:52     ` [PATCH v3 2/3] Respect `db_home` setting even for SYSTEM/Microsoft accounts Johannes Schindelin
2022-09-21 11:52     ` [PATCH v3 3/3] Respect `db_home: env` even when no uid can be determined Johannes Schindelin
2023-03-28  8:17     ` [PATCH v4 0/3] Support deriving the current user's home directory via HOME Johannes Schindelin
2023-03-28  8:17       ` [PATCH v4 1/3] Allow deriving the current user's home directory via the HOME variable Johannes Schindelin
2023-03-28 10:35         ` Corinna Vinschen
2023-03-28 12:34           ` Jon Turney
2023-03-28 13:31             ` Corinna Vinschen
2023-03-29  8:36               ` Corinna Vinschen
2023-04-03  6:39                 ` Johannes Schindelin
2023-03-28  8:17       ` [PATCH v4 2/3] Respect `db_home` setting even for SYSTEM/Microsoft accounts Johannes Schindelin
2023-03-28 10:16         ` Corinna Vinschen
2023-04-03  6:36           ` Johannes Schindelin
2023-04-03 10:59             ` Corinna Vinschen
2023-04-03 13:32               ` Johannes Schindelin
2023-03-28  8:17       ` [PATCH v4 3/3] Respect `db_home: env` even when no uid can be determined Johannes Schindelin
2023-03-28 10:17         ` Corinna Vinschen
2023-04-03  6:45           ` Johannes Schindelin
2023-04-03 13:12             ` Johannes Schindelin
2023-04-03 13:29               ` Corinna Vinschen
2023-04-03 13:57                 ` Johannes Schindelin
2023-04-03 19:23                   ` Corinna Vinschen
2023-04-04 15:11                     ` Johannes Schindelin
2023-04-03 13:19             ` Johannes Schindelin
2023-04-03 14:44       ` [PATCH v5 0/3] Support deriving the current user's home directory via HOME Johannes Schindelin
2023-04-03 14:44         ` [PATCH v5 1/3] Allow deriving the current user's home directory via the HOME variable Johannes Schindelin
2023-04-03 18:36           ` Corinna Vinschen
2023-04-04 15:12             ` Johannes Schindelin
2023-04-03 14:45         ` [PATCH v5 2/3] Respect `db_home` setting even for SYSTEM/Microsoft accounts Johannes Schindelin
2023-04-03 18:37           ` Corinna Vinschen
2023-04-04 15:12             ` Johannes Schindelin
2023-04-03 14:45         ` [PATCH v5 3/3] Respect `db_home: env` even when no uid can be determined Johannes Schindelin
2023-04-04 15:07         ` [PATCH v6 0/4] Support deriving the current user's home directory via HOME Johannes Schindelin
2023-04-04 15:07           ` [PATCH v6 1/4] Allow deriving the current user's home directory via the HOME variable Johannes Schindelin
2023-04-04 15:07           ` [PATCH v6 2/4] Respect `db_home` setting even for SYSTEM/Microsoft accounts Johannes Schindelin
2023-04-04 15:07           ` [PATCH v6 3/4] uinfo: special-case IIS APPPOOL accounts Johannes Schindelin
2023-04-04 15:07           ` [PATCH v6 4/4] Do not rely on `getenv ("HOME")`'s path conversion Johannes Schindelin
2023-04-06  8:37             ` Corinna Vinschen
2023-04-06  9:54               ` Johannes Schindelin
2023-04-06 10:28                 ` Corinna Vinschen
2023-05-22 11:12           ` [PATCH v7 0/4] Support deriving the current user's home directory via HOME Johannes Schindelin
2023-05-22 11:12             ` [PATCH v7 1/4] Allow deriving the current user's home directory via the HOME variable Johannes Schindelin
2023-05-22 11:12             ` [PATCH v7 2/4] Respect `db_home` setting even for SYSTEM/Microsoft accounts Johannes Schindelin
2023-05-22 11:12             ` [PATCH v7 3/4] uinfo: special-case IIS APPPOOL accounts Johannes Schindelin
2023-05-22 11:13             ` [PATCH v7 4/4] Do not rely on `getenv ("HOME")`'s path conversion Johannes Schindelin
2023-06-06 13:33             ` [PATCH v7 0/4] Support deriving the current user's home directory via HOME Corinna Vinschen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=cover.1450375424.git.johannes.schindelin@gmx.de \
    --to=johannes.schindelin@gmx.de \
    --cc=cygwin-patches@cygwin.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).