From eac3f03cb4877bb5ea02747ba1e2afc4bbc29cd3 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 3 Apr 2013 13:41:44 -0700 Subject: [PATCH] Fix bug #9746 - guest ok + force user + force group doesn't work When doing set_conn_force_user_group(), only set the 'guest' bool passed to make_session_info_from_username() if the user mapped to is the guest username. Otherwise setting : guest ok = yes force user = foo doesn't work in a share definition when logging in as a guest user - the 'guest' bit is overriding the user being forced when creating the struct auth_session_info from the username. Signed-off-by: Jeremy Allison --- source3/smbd/service.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/source3/smbd/service.c b/source3/smbd/service.c index 4fe3809..2f96820 100644 --- a/source3/smbd/service.c +++ b/source3/smbd/service.c @@ -448,7 +448,6 @@ NTSTATUS set_conn_force_user_group(connection_struct *conn, int snum) char *fuser; char *sanitized_username; struct auth_session_info *forced_serverinfo; - bool guest; fuser = talloc_string_sub(conn, lp_force_user(talloc_tos(), snum), "%S", lp_const_servicename(snum)); @@ -456,11 +455,9 @@ NTSTATUS set_conn_force_user_group(connection_struct *conn, int snum) return NT_STATUS_NO_MEMORY; } - guest = security_session_user_level(conn->session_info, NULL) < SECURITY_USER; - status = make_session_info_from_username( conn, fuser, - guest, + strequal(fuser, lp_guestaccount()), &forced_serverinfo); if (!NT_STATUS_IS_OK(status)) { return status; -- 1.8.1.3