summaryrefslogtreecommitdiffstats
path: root/source3
diff options
context:
space:
mode:
authorAndreas Schneider <asn@samba.org>2013-11-06 17:43:19 +0100
committerStefan Metzmacher <metze@samba.org>2014-04-17 14:56:06 +0200
commit6118c2ec2c3770e10fd3683c3a0b07ad43a8a10b (patch)
tree90b185ec086c7434878593defb8e8f4b9a8bb912 /source3
parent15feb84273c65dbe2d3f502861c7f520c46dc9d3 (diff)
downloadsamba-6118c2ec2c3770e10fd3683c3a0b07ad43a8a10b.tar.gz
samba-6118c2ec2c3770e10fd3683c3a0b07ad43a8a10b.tar.xz
samba-6118c2ec2c3770e10fd3683c3a0b07ad43a8a10b.zip
s3: Use root_mode() to get uid_wrapper working correctly.
Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
Diffstat (limited to 'source3')
-rw-r--r--source3/registry/reg_dispatcher.c2
-rw-r--r--source3/rpc_server/rpc_handles.c2
-rw-r--r--source3/rpc_server/samr/srv_samr_nt.c4
-rw-r--r--source3/rpc_server/srv_access_check.c2
4 files changed, 5 insertions, 5 deletions
diff --git a/source3/registry/reg_dispatcher.c b/source3/registry/reg_dispatcher.c
index e9ed14bc7d..0f87b27698 100644
--- a/source3/registry/reg_dispatcher.c
+++ b/source3/registry/reg_dispatcher.c
@@ -170,7 +170,7 @@ bool regkey_access_check(struct registry_key_handle *key, uint32 requested,
WERROR err;
/* root free-pass, like we have on all other pipes like samr, lsa, etc. */
- if (geteuid() == sec_initial_uid()) {
+ if (root_mode()) {
*granted = REG_KEY_ALL;
return true;
}
diff --git a/source3/rpc_server/rpc_handles.c b/source3/rpc_server/rpc_handles.c
index 409299abce..d06848ae1b 100644
--- a/source3/rpc_server/rpc_handles.c
+++ b/source3/rpc_server/rpc_handles.c
@@ -505,7 +505,7 @@ void *_policy_handle_find(struct pipes_struct *p,
return NULL;
}
if ((access_required & rpc_hnd->access_granted) != access_required) {
- if (geteuid() == sec_initial_uid()) {
+ if (root_mode()) {
DEBUG(4, ("%s: ACCESS should be DENIED (granted: "
"%#010x; required: %#010x)\n", location,
rpc_hnd->access_granted, access_required));
diff --git a/source3/rpc_server/samr/srv_samr_nt.c b/source3/rpc_server/samr/srv_samr_nt.c
index 5318ba2c8c..76703d1389 100644
--- a/source3/rpc_server/samr/srv_samr_nt.c
+++ b/source3/rpc_server/samr/srv_samr_nt.c
@@ -2644,7 +2644,7 @@ static NTSTATUS get_user_info_18(struct pipes_struct *p,
if (ret == False) {
DEBUG(4, ("User %s not found\n", sid_string_dbg(user_sid)));
TALLOC_FREE(smbpass);
- return (geteuid() == sec_initial_uid()) ? NT_STATUS_NO_SUCH_USER : NT_STATUS_ACCESS_DENIED;
+ return root_mode() ? NT_STATUS_NO_SUCH_USER : NT_STATUS_ACCESS_DENIED;
}
DEBUG(3,("User:[%s] 0x%x\n", pdb_get_username(smbpass), pdb_get_acct_ctrl(smbpass) ));
@@ -3683,7 +3683,7 @@ NTSTATUS _samr_CreateUser2(struct pipes_struct *p,
/* determine which user right we need to check based on the acb_info */
- if (geteuid() == sec_initial_uid()) {
+ if (root_mode()) {
can_add_account = true;
} else if (acb_info & ACB_WSTRUST) {
needed_priv = SEC_PRIV_MACHINE_ACCOUNT;
diff --git a/source3/rpc_server/srv_access_check.c b/source3/rpc_server/srv_access_check.c
index 3efc75b3cb..878e38b192 100644
--- a/source3/rpc_server/srv_access_check.c
+++ b/source3/rpc_server/srv_access_check.c
@@ -64,7 +64,7 @@ NTSTATUS access_check_object( struct security_descriptor *psd, struct security_t
}
/* Check if we are root */
- if (geteuid() == sec_initial_uid()) {
+ if (root_mode()) {
is_root = true;
}