From: "Derrick Stolee via GitGitGadget" <gitgitgadget@gmail.com> To: git@vger.kernel.org Cc: gitster@pobox.com, me@ttaylorr.com, johannes.schindelin@gmx.de, Derrick Stolee <derrickstolee@github.com>, Derrick Stolee <derrickstolee@github.com> Subject: [PATCH 3/3] setup: opt-out of check with safe.directory=* Date: Wed, 13 Apr 2022 15:32:31 +0000 [thread overview] Message-ID: <a5faf3a1779b51195313794fa0a48b7e2009c01b.1649863951.git.gitgitgadget@gmail.com> (raw) In-Reply-To: <pull.1215.git.1649863951.gitgitgadget@gmail.com> From: Derrick Stolee <derrickstolee@github.com> With the addition of the safe.directory in 8959555ce (setup_git_directory(): add an owner check for the top-level directory, 2022-03-02) released in v2.35.2, we are receiving feedback from a variety of users about the feature. Some users have a very large list of shared repositories and find it cumbersome to add this config for every one of them. In a more difficult case, certain workflows involve running Git commands within containers. The container boundary prevents any global or system config from communicating `safe.directory` values from the host into the container. Further, the container almost always runs as a different user than the owner of the directory in the host. To simplify the reactions necessary for these users, extend the definition of the safe.directory config value to include a possible '*' value. This value implies that all directories are safe, providing a single setting to opt-out of this protection. Note that an empty assignment of safe.directory clears all previous values, and this is already the case with the "if (!value || !*value)" condition. Signed-off-by: Derrick Stolee <derrickstolee@github.com> --- Documentation/config/safe.txt | 7 +++++++ setup.c | 6 ++++-- t/t0033-safe-directory.sh | 10 ++++++++++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/Documentation/config/safe.txt b/Documentation/config/safe.txt index 63597b2df8f..6d764fe0ccf 100644 --- a/Documentation/config/safe.txt +++ b/Documentation/config/safe.txt @@ -19,3 +19,10 @@ line option `-c safe.directory=<path>`. The value of this setting is interpolated, i.e. `~/<path>` expands to a path relative to the home directory and `%(prefix)/<path>` expands to a path relative to Git's (runtime) prefix. ++ +To completely opt-out of this security check, set `safe.directory` to the +string `*`. This will allow all repositories to be treated as if their +directory was listed in the `safe.directory` list. If `safe.directory=*` +is set in system config and you want to re-enable this protection, then +initialize your list with an empty value before listing the repositories +that you deem safe. diff --git a/setup.c b/setup.c index a995c359c32..a42b21307f7 100644 --- a/setup.c +++ b/setup.c @@ -1103,9 +1103,11 @@ static int safe_directory_cb(const char *key, const char *value, void *d) if (strcmp(key, "safe.directory")) return 0; - if (!value || !*value) + if (!value || !*value) { data->is_safe = 0; - else { + } else if (!strcmp(value, "*")) { + data->is_safe = 1; + } else { const char *interpolated = NULL; if (!git_config_pathname(&interpolated, key, value) && diff --git a/t/t0033-safe-directory.sh b/t/t0033-safe-directory.sh index 6f33c0dfefa..239d93f4d21 100755 --- a/t/t0033-safe-directory.sh +++ b/t/t0033-safe-directory.sh @@ -36,4 +36,14 @@ test_expect_success 'safe.directory matches, but is reset' ' expect_rejected_dir ' +test_expect_success 'safe.directory=*' ' + git config --global --add safe.directory "*" && + git status +' + +test_expect_success 'safe.directory=*, but is reset' ' + git config --global --add safe.directory "" && + expect_rejected_dir +' + test_done -- gitgitgadget
next prev parent reply other threads:[~2022-04-13 15:33 UTC|newest] Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-04-13 15:32 [PATCH 0/3] Updates to the safe.directory config option Derrick Stolee via GitGitGadget 2022-04-13 15:32 ` [PATCH 1/3] t0033: add tests for safe.directory Derrick Stolee via GitGitGadget 2022-04-13 16:24 ` Junio C Hamano 2022-04-13 16:29 ` Derrick Stolee 2022-04-13 19:16 ` Ævar Arnfjörð Bjarmason 2022-04-13 19:46 ` Junio C Hamano 2022-04-13 19:52 ` Derrick Stolee 2022-04-13 15:32 ` [PATCH 2/3] setup: fix safe.directory key not being checked Matheus Valadares via GitGitGadget 2022-04-13 16:34 ` Junio C Hamano 2022-04-13 15:32 ` Derrick Stolee via GitGitGadget [this message] 2022-04-13 16:40 ` [PATCH 3/3] setup: opt-out of check with safe.directory=* Junio C Hamano 2022-04-13 16:15 ` [PATCH 0/3] Updates to the safe.directory config option Junio C Hamano 2022-04-13 16:25 ` Derrick Stolee 2022-04-13 16:44 ` Junio C Hamano 2022-04-13 20:27 ` Junio C Hamano 2022-04-13 21:25 ` Taylor Blau 2022-04-13 21:45 ` Junio C Hamano 2022-04-27 17:06 ` [PATCH 0/3] t0033-safe-directory: test improvements and a documentation clarification SZEDER Gábor 2022-04-27 17:06 ` [PATCH 1/3] t0033-safe-directory: check the error message without matching the trash dir SZEDER Gábor 2022-05-09 22:27 ` Taylor Blau 2022-05-10 6:04 ` Carlo Marcelo Arenas Belón 2022-04-27 17:06 ` [PATCH 2/3] t0033-safe-directory: check when 'safe.directory' is ignored SZEDER Gábor 2022-04-27 20:37 ` Junio C Hamano 2022-04-29 16:12 ` Derrick Stolee 2022-04-29 17:57 ` Junio C Hamano 2022-04-29 19:06 ` SZEDER Gábor 2022-04-29 19:19 ` Derrick Stolee 2022-05-10 18:33 ` SZEDER Gábor 2022-05-10 19:55 ` Taylor Blau 2022-05-10 20:06 ` Carlo Marcelo Arenas Belón 2022-05-10 20:11 ` Taylor Blau 2022-05-10 20:18 ` Eric Sunshine 2022-04-27 17:06 ` [PATCH 3/3] safe.directory: document and check that it's ignored in the environment SZEDER Gábor 2022-04-27 20:42 ` Junio C Hamano 2022-04-27 20:49 ` Junio C Hamano 2022-04-29 16:13 ` Derrick Stolee 2022-05-09 21:39 ` SZEDER Gábor 2022-05-09 21:45 ` Junio C Hamano 2022-05-10 18:48 ` SZEDER Gábor
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 List information: http://vger.kernel.org/majordomo-info.html * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=a5faf3a1779b51195313794fa0a48b7e2009c01b.1649863951.git.gitgitgadget@gmail.com \ --to=gitgitgadget@gmail.com \ --cc=derrickstolee@github.com \ --cc=git@vger.kernel.org \ --cc=gitster@pobox.com \ --cc=johannes.schindelin@gmx.de \ --cc=me@ttaylorr.com \ --subject='Re: [PATCH 3/3] setup: opt-out of check with safe.directory=*' \ /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
Code repositories for project(s) associated with this inbox: https://80x24.org/mirrors/git.git 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).