6d47df
From 7f8858f8632d77497765bab79922f1762ce46d50 Mon Sep 17 00:00:00 2001
6d47df
From: Alexander Bokovoy <abokovoy@redhat.com>
6d47df
Date: Tue, 16 Oct 2018 17:54:09 +0300
6d47df
Subject: [PATCH] net groupmap: force using empty config when mapping Guests
6d47df
6d47df
When we define a group mapping for BUILTIN\Guests to 'nobody' group in
6d47df
we run 'net groupmap add ...' with a default /etc/samba/smb.conf which
6d47df
is now configured to use ipasam passdb module. We authenticate to LDAP
6d47df
with GSSAPI in ipasam passdb module initialization.
6d47df
6d47df
If GSSAPI authentication failed (KDC is offline, for example, during
6d47df
server upgrade), 'net groupmap add' crashes after ~10 attempts to
6d47df
re-authenticate. This is intended behavior in smbd/winbindd as they
6d47df
cannot work anymore. However, for the command line tools there are
6d47df
plenty of operations where passdb module is not needed.
6d47df
6d47df
Additionally, GSSAPI authentication uses the default ccache in the
6d47df
environment and a key from /etc/samba/samba.keytab keytab. This means
6d47df
that if you'd run 'net *' as root, it will replace whatever Kerberos
6d47df
tickets you have with a TGT for cifs/`hostname` and a service ticket to
6d47df
ldap/`hostname` of IPA master.
6d47df
6d47df
Apply a simple solution to avoid using /etc/samba/smb.conf when we
6d47df
set up the group mapping by specifying '-s /dev/null' in 'net groupmap'
6d47df
call.
6d47df
6d47df
For upgrade code this is enough as in
6d47df
a678336b8b36cdbea2512e79c09e475fdc249569 we enforce use of empty
6d47df
credentials cache during upgrade to prevent tripping on individual
6d47df
ccaches from KEYRING: or KCM: cache collections.
6d47df
6d47df
Related: https://pagure.io/freeipa/issue/7705
6d47df
(cherry picked from commit e48f5a4d64d95c4c5cb5f8ede39cae5c7c1e512c)
6d47df
---
6d47df
 ipaserver/install/adtrustinstance.py | 4 ++--
6d47df
 1 file changed, 2 insertions(+), 2 deletions(-)
6d47df
6d47df
diff --git a/ipaserver/install/adtrustinstance.py b/ipaserver/install/adtrustinstance.py
6d47df
index da16748cf..3a751ccb2 100644
6d47df
--- a/ipaserver/install/adtrustinstance.py
6d47df
+++ b/ipaserver/install/adtrustinstance.py
6d47df
@@ -114,8 +114,8 @@ def make_netbios_name(s):
6d47df
 
6d47df
 def map_Guests_to_nobody():
6d47df
     env = {'LC_ALL': 'C'}
6d47df
-    args = [paths.NET, 'groupmap', 'add', 'sid=S-1-5-32-546',
6d47df
-            'unixgroup=nobody', 'type=builtin']
6d47df
+    args = [paths.NET, '-s', '/dev/null', 'groupmap', 'add',
6d47df
+            'sid=S-1-5-32-546', 'unixgroup=nobody', 'type=builtin']
6d47df
 
6d47df
     logger.debug("Map BUILTIN\\Guests to a group 'nobody'")
6d47df
     ipautil.run(args, env=env, raiseonerr=False, capture_error=True)
6d47df
-- 
6d47df
2.17.2
6d47df