diff options
author | Niels de Vos <ndevos@redhat.com> | 2013-12-23 12:53:32 +0100 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2013-12-30 19:49:43 -0800 |
commit | 7e3dd526c62b3a1bb59945efdfed2c2fbbcf9cf9 (patch) | |
tree | 69088ce06313f6b03b9ff48a21eb4e0d568b8cb1 /xlators | |
parent | d85726d19432384e2c3dd6ceff4b7b4ec3f8f57a (diff) |
rpc/server: add anonuid and anongid options for root-squash
Introduce new options to modify the behaviour of server.root-squash.
With server.anonuid and server.anongid the uid/gid can be specified and
the root user (uid=0 and gid=0) will be mapped to the given uid/gid
instead of nfsnobody (uid=65534 and gid=65534).
Many thanks to Vikhyat Umrao for writing the majority of the test-case!
Change-Id: I6379a3d2ef52b9b9707f2f6f0529657580c8d779
BUG: 1043886
CC: Vikhyat Umrao <vumrao@redhat.com>
Signed-off-by: Niels de Vos <ndevos@redhat.com>
Reviewed-on: http://review.gluster.org/6546
Reviewed-by: Santosh Pradhan <spradhan@redhat.com>
Reviewed-by: Vikhyat Umrao <vumrao@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
Diffstat (limited to 'xlators')
-rw-r--r-- | xlators/mgmt/glusterd/src/glusterd-volume-set.c | 10 | ||||
-rw-r--r-- | xlators/protocol/server/src/server.c | 16 |
2 files changed, 26 insertions, 0 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-volume-set.c b/xlators/mgmt/glusterd/src/glusterd-volume-set.c index 131f96ce667..b1989567a4d 100644 --- a/xlators/mgmt/glusterd/src/glusterd-volume-set.c +++ b/xlators/mgmt/glusterd/src/glusterd-volume-set.c @@ -831,6 +831,16 @@ struct volopt_map_entry glusterd_volopt_map[] = { .option = "root-squash", .op_version = 2 }, + { .key = "server.anonuid", + .voltype = "protocol/server", + .option = "anonuid", + .op_version = 3 + }, + { .key = "server.anongid", + .voltype = "protocol/server", + .option = "anongid", + .op_version = 3 + }, { .key = "server.statedump-path", .voltype = "protocol/server", .option = "statedump-path", diff --git a/xlators/protocol/server/src/server.c b/xlators/protocol/server/src/server.c index 3720372f9e3..a797a0d6cb1 100644 --- a/xlators/protocol/server/src/server.c +++ b/xlators/protocol/server/src/server.c @@ -1057,6 +1057,22 @@ struct volume_options options[] = { "uids or gids that might be equally sensitive, such " "as user bin or group staff." }, + { .key = {"anonuid"}, + .type = GF_OPTION_TYPE_INT, + .default_value = "65534", /* RPC_NOBODY_UID */ + .min = 0, + .max = (uint32_t) -1, + .description = "value of the uid used for the anonymous " + "user/nfsnobody when root-squash is enabled." + }, + { .key = {"anongid"}, + .type = GF_OPTION_TYPE_INT, + .default_value = "65534", /* RPC_NOBODY_GID */ + .min = 0, + .max = (uint32_t) -1, + .description = "value of the gid used for the anonymous " + "user/nfsnobody when root-squash is enabled." + }, { .key = {"statedump-path"}, .type = GF_OPTION_TYPE_PATH, .default_value = DEFAULT_VAR_RUN_DIRECTORY, |