From: Johan Herland <johan@herland.net>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>
Subject: [PATCH/RFC 1/7] Clarify documentation on permissions in shared repositories
Date: Wed, 25 Mar 2009 22:37:29 +0100 [thread overview]
Message-ID: <200903252237.29367.johan@herland.net> (raw)
In-Reply-To: <200903252236.03010.johan@herland.net>
The "core.sharedRepository" config variable (and, by extension, the
"--shared" argument to "git init") can be used to loosen repository
permissions for users with a safe umask, but it can not be used to
tighten repository permissions for users with a more lenient umask.
This patch updates the documentation to clarify the current behaviour.
Signed-off-by: Johan Herland <johan@herland.net>
---
Documentation/config.txt | 15 +++++++++++----
Documentation/git-init.txt | 12 ++++++++----
2 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/Documentation/config.txt b/Documentation/config.txt
index 089569a..d5befd5 100644
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
@@ -294,10 +294,17 @@ core.sharedRepository::
repository will be readable by all users, additionally to being
group-shareable. When 'umask' (or 'false'), git will use permissions
reported by umask(2). When '0xxx', where '0xxx' is an octal number,
- files in the repository will have this mode value. '0xxx' will override
- user's umask value, and thus, users with a safe umask (0077) can use
- this option. Examples: '0660' is equivalent to 'group'. '0640' is a
- repository that is group-readable but not group-writable.
+ files in the repository will have (at least) this mode value. '0xxx'
+ will override a safer umask value, and thus, users with a safe umask
+ (0077) can use this option to loosen the repository permissions.
+ Examples: '0660' is equivalent to 'group'. '0640' is a repository
+ that is group-readable but not group-writable (unless umask allows
+ group-writability).
+ Note: Even when not set to 'umask' (or 'false') this option is still
+ combined with the umask to produce the actual mode value. For
+ example, if umask is 0022, setting 'group' (or '0660') will not make
+ the repository non world-readable (the actual mode value will in fact
+ be '0664').
See linkgit:git-init[1]. False by default.
core.warnAmbiguousRefs::
diff --git a/Documentation/git-init.txt b/Documentation/git-init.txt
index 71749c0..bddc01b 100644
--- a/Documentation/git-init.txt
+++ b/Documentation/git-init.txt
@@ -45,6 +45,7 @@ repository. When specified, the config variable "core.sharedRepository" is
set so that files and directories under `$GIT_DIR` are created with the
requested permissions. When not specified, git will use permissions reported
by umask(2).
+When specified, the permissions will still be no stricter than the umask.
The option can have the following values, defaulting to 'group' if no value
is given:
@@ -58,11 +59,14 @@ is given:
- 'all' (or 'world' or 'everybody'): Same as 'group', but make the repository
readable by all users.
- - '0xxx': '0xxx' is an octal number and each file will have mode '0xxx'
+ - '0xxx': '0xxx' is an octal number and each file will have (at least) this
+ mode value.
Any option except 'umask' can be set using this option. '0xxx' will
- override users umask(2) value, and thus, users with a safe umask (0077)
- can use this option. '0640' will create a repository which is group-readable
- but not writable. '0660' is equivalent to 'group'.
+ override a safer umask(2) value (but not a more permissive umask), and
+ thus, users with a safe umask (e.g. 0077) can use this option to loosen
+ repository permissions. '0640' will create a repository which is
+ group-readable but not writable (unless umask allows group-writability).
+ '0660' is equivalent to 'group'.
By default, the configuration flag receive.denyNonFastForwards is enabled
in shared repositories, so that you cannot force a non fast-forwarding push
--
1.6.2.1.473.g92672
next prev parent reply other threads:[~2009-03-25 21:39 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-25 0:05 [BUG?] How to make a shared/restricted repo? Johan Herland
2009-03-25 0:26 ` Brandon Casey
2009-03-25 0:45 ` Johan Herland
2009-03-25 0:49 ` Junio C Hamano
2009-03-25 0:46 ` Junio C Hamano
2009-03-25 2:11 ` Johan Herland
2009-03-25 2:24 ` Junio C Hamano
2009-03-25 21:36 ` [PATCH/RFC 0/7] Restricting repository access (Was: [BUG?] How to make a shared/restricted repo?) Johan Herland
2009-03-25 21:37 ` Johan Herland [this message]
2009-03-25 21:38 ` [PATCH/RFC 2/7] Cleanup: Remove unnecessary if-else clause Johan Herland
2009-03-25 21:39 ` [PATCH/RFC 3/7] Introduce core.restrictedRepository for restricting repository permissions Johan Herland
2009-03-25 21:39 ` [PATCH/RFC 4/7] git-init: Introduce --restricted for restricting repository access Johan Herland
2009-03-25 21:40 ` [PATCH/RFC 5/7] Add tests for "core.restrictedRepository" and "git init --restricted" Johan Herland
2009-03-25 21:41 ` [PATCH/RFC 6/7] git-init: Apply correct mode bits to template files in shared/restricted repo Johan Herland
2009-03-25 21:42 ` [PATCH/RFC 7/7] Apply restricted permissions to loose objects and pack files Johan Herland
2009-03-25 23:19 ` [BUG?] How to make a shared/restricted repo? Junio C Hamano
2009-03-26 0:22 ` Johan Herland
2009-03-26 7:23 ` Junio C Hamano
2009-03-26 8:29 ` Johan Herland
2009-03-26 8:41 ` Johannes Sixt
2009-03-26 9:44 ` Johan Herland
2009-03-26 9:58 ` Johannes Sixt
2009-03-26 15:02 ` [PATCH 0/2] chmod cleanup (Was: [BUG?] How to make a shared/restricted repo?) Johan Herland
2009-03-26 15:16 ` [PATCH 1/2] Move chmod(foo, 0444) into move_temp_to_file() Johan Herland
2009-03-28 6:14 ` Junio C Hamano
2009-03-28 10:48 ` Johan Herland
2009-03-26 15:17 ` [PATCH 2/2] Resolve double chmod() in move_temp_to_file() Johan Herland
2009-03-28 6:21 ` Junio C Hamano
2009-03-28 11:01 ` Johan Herland
2009-03-29 20:31 ` Junio C Hamano
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=200903252237.29367.johan@herland.net \
--to=johan@herland.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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 NNTP newsgroup(s).