Package: samba
Version: 2:4.5.2+dfsg-1
Severity: normal
Tags: upstream patch
After upgrading from Samba 4.4.7 to 4.5.2 user authentication stopped working
in our installation.
We are mapping (via username map script) usernames from full email addresses to
real Samba usernames so that users can login to Samba server using email
address as username.
Samba is configured as standalone server.
Upstrean commit 3f82db56cbf2727abd465e28ac02ad2242b47c29 modified client domain
mapping so that an empty domain is not mapped any more to Samba server domain
if username contains "@".
Since we have no domain at our site Windows clients send empty domain string to
Samba when users attempt to log in.
When user tries to login using full email address as username Samba doesn't map
the empty domain to Samba server domain and authentication fails.
As reported in upstream bug https://bugzilla.samba.org/show_bug.cgi?id=12375
preserving empty domain is useful only if there is a domain controller.
I'd expect that when Samba configuration is "server role = standalone" empty
client domain will always be mapped to server domain.
I wrote a simple patch that fixes the problem allowing empty domain mapping if
Samba role is standalone server.
-- System Information:
Debian Release: stretch/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 4.8.0-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
Versions of packages samba depends on:
ii adduser 3.115
ii dpkg 1.18.15
ii init-system-helpers 1.46
ii libbsd0 0.8.3-1
ii libc6 2.24-8
ii libldb1 2:1.1.27-1
ii libpam-modules 1.1.8-3.3
ii libpam-runtime 1.1.8-3.3
ii libpopt0 1.16-10
ii libpython2.7 2.7.13~rc1-1
ii libtalloc2 2.1.8-1
ii libtdb1 1.3.11-2
ii libtevent0 0.9.31-1
ii libwbclient0 2:4.5.2+dfsg-1
ii lsb-base 9.20161125
ii procps 2:3.3.12-3
ii python 2.7.11-2
ii python-dnspython 1.15.0-1
ii python-samba 2:4.5.2+dfsg-1
pn python2.7:any <none>
ii samba-common 2:4.5.2+dfsg-1
ii samba-common-bin 2:4.5.2+dfsg-1
ii samba-libs 2:4.5.2+dfsg-1
ii tdb-tools 1.3.11-2
ii update-inetd 4.43
Versions of packages samba recommends:
ii attr 1:2.4.47-2
ii logrotate 3.8.7-2
ii samba-dsdb-modules 2:4.5.2+dfsg-1
ii samba-vfs-modules 2:4.5.2+dfsg-1
Versions of packages samba suggests:
pn bind9 <none>
pn bind9utils <none>
pn ctdb <none>
pn ldb-tools <none>
pn ntp <none>
pn smbldap-tools <none>
pn ufw <none>
pn winbind <none>
-- Configuration Files:
/etc/logrotate.d/samba changed [not included]
-- no debconf information
Index: samba-4.5.2+dfsg/source3/auth/auth_util.c
===================================================================
--- samba-4.5.2+dfsg.orig/source3/auth/auth_util.c
+++ samba-4.5.2+dfsg/source3/auth/auth_util.c
@@ -109,7 +109,8 @@ NTSTATUS make_user_info_map(TALLOC_CTX *
char *internal_username = NULL;
bool upn_form = false;
- if (client_domain[0] == '\0' && strchr(smb_name, '@')) {
+ if (client_domain[0] == '\0' && strchr(smb_name, '@') &&
+ lp_server_role() != ROLE_STANDALONE) {
upn_form = true;
}