Public Share with Samba4 AD DC does not work

I tried to set up a public share on my Samba4 AD DC but Windows always asks for username and password before mounting.
I can't figure out what is going wrong. The only thing is, that testparm does not show all options, I set in my config. I have set guest okay = yes and public = yes in my smb.conf but testparm does not show it, not even with -v.

I tried like 100 different configurations but nothing works. So it does not really make sense to post all configs, I tried.
As a workaround it would be okay, if I could mount a share with the "Guest" user and without a password, but even this does not work.

Any suggestions?

Edit:
smb.conf

[global]
  workgroup = WORKGROUP
  realm = REALM.WORKGROUP
  netbios name = SEVERNAME
  server role = active directory domain controller
  server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate
  idmap_ldb:use rfc2307 = yes 

  log file = /var/log/samba/log.%m
  max log size = 1000
  syslog = 0 

  panic action = /usr/share/samba/panic-action %d

  usershare allow guests = no
  map to guest = bad user

[Packages]
  comment = Packages
  path = /data/packages
  available = yes
  browsable = yes
  writable = yes
  public = yes

p.s.: I tried all possible configs and suggestions I found on the Internet

testparm -v

Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (4096) to minimum Windows limit (16384)
Processing section "[netlogon]"
Processing section "[profiles]"
Processing section "[sysvol]"
Processing section "[UserData]"
Processing section "[Data]"
Processing section "[Exchange]"
Processing section "[Packages]"
Processing section "[Backup]"
Processing section "[printers]"
Loaded services file OK.
Server role: ROLE_ACTIVE_DIRECTORY_DC
Press enter to see a dump of your service definitions

[global]
dos charset = CP850
unix charset = UTF-8
workgroup = WORKGROUP
realm = REALM.WORKGROUP
netbios name = SERVERNAME
netbios aliases = 
netbios scope = 
server string = Samba 4.1.17-Debian
interfaces = 
bind interfaces only = No
server role = active directory domain controller
security = USER
auth methods = 
encrypt passwords = Yes
client schannel = Auto
 server schannel = Auto
 allow trusted domains = Yes
map to guest = Bad User
null passwords = No
obey pam restrictions = No
password server = *
smb passwd file = /etc/samba/smbpasswd
 private dir = /var/lib/samba/private
passdb backend = samba_dsdb
algorithmic rid base = 1000
root directory = 
guest account = nobody
enable privileges = Yes
pam password change = No
passwd program = 
passwd chat = *new*password* %n\n *new*password* %n\n *changed*
passwd chat debug = No
passwd chat timeout = 2
check password script = 
username map = 
username level = 0
unix password sync = No
restrict anonymous = 0
lanman auth = No
ntlm auth = Yes
client NTLMv2 auth = Yes
client lanman auth = No
client plaintext auth = No
client use spnego principal = No
preload modules = 
dedicated keytab file = 
kerberos method = default
map untrusted to domain = No
log level = 2
syslog = 0
syslog only = No
log file = /var/log/samba/log.%m
max log size = 1000
debug timestamp = Yes
debug prefix timestamp = No
debug hires timestamp = Yes
debug pid = No
debug uid = No
debug class = No
enable core files = Yes
smb ports = 445, 139
large readwrite = Yes
server max protocol = SMB3
server min protocol = LANMAN1
client max protocol = NT1
client min protocol = CORE
unicode = Yes
min receivefile size = 0
read raw = Yes
write raw = Yes
disable netbios = No
reset on zero vc = No
log writeable files on exit = No
defer sharing violations = Yes
nt pipe support = Yes
nt status support = Yes
max mux = 50
max xmit = 16644
name resolve order = lmhosts, wins, host, bcast
max ttl = 259200
max wins ttl = 518400
min wins ttl = 21600
time server = No
unix extensions = Yes
use spnego = Yes
client signing = default
server signing = default
client use spnego = Yes
client ldap sasl wrapping = plain
enable asu support = No
svcctl list = 
cldap port = 0
dgram port = 0
nbt port = 0
krb5 port = 0
kpasswd port = 0
web port = 0
rpc big endian = No
deadtime = 0
getwd cache = Yes
keepalive = 300
lpq cache time = 30
max smbd processes = 0
max disk size = 0
max open files = 16384
socket options = TCP_NODELAY
use mmap = Yes
use ntdb = No
hostname lookups = No
name cache timeout = 660
ctdbd socket = /tmp/ctdb.socket
cluster addresses = 
clustering = No
ctdb timeout = 0
ctdb locktime warn threshold = 0
smb2 max read = 1048576
smb2 max write = 1048576
smb2 max trans = 1048576
smb2 max credits = 8192
load printers = Yes
printcap cache time = 750
printcap name = 
cups server = 
cups encrypt = No
cups connection timeout = 30
iprint server = 
disable spoolss = No
addport command = 
enumports command = 
addprinter command = 
deleteprinter command = 
show add printer wizard = Yes
os2 driver map = 
mangling method = hash2
mangle prefix = 1
max stat cache size = 256
stat cache = Yes
machine password timeout = 604800
add user script = 
rename user script = 
delete user script = 
add group script = 
delete group script = 
add user to group script = 
delete user from group script = 
set primary group script = 
add machine script = 
shutdown script = 
abort shutdown script = 
username map script = 
username map cache time = 0
logon script = 
logon path = \\%N\%U\profile
logon drive = 
logon home = \\%N\%U
domain logons = No
init logon delayed hosts = 
init logon delay = 100
os level = 20
lm announce = Auto
lm interval = 60
preferred master = No
local master = Yes
domain master = Auto
browse list = Yes
enhanced browsing = Yes
dns proxy = Yes
wins proxy = No
wins server = 
wins support = No
wins hook = 
lock spin time = 200
oplock break wait time = 0
ldap admin dn = 
ldap delete dn = No
ldap group suffix = 
ldap idmap suffix = 
ldap machine suffix = 
ldap passwd sync = no
ldap replication sleep = 1000
ldap suffix = 
ldap ssl = start tls
ldap ssl ads = No
ldap deref = auto
ldap follow referral = Auto
ldap timeout = 15
ldap connection timeout = 2
ldap page size = 1024
ldap user suffix = 
ldap debug level = 0
ldap debug threshold = 10
eventlog list = 
add share command = 
change share command = 
delete share command = 
preload = 
lock directory = /var/run/samba
state directory = /var/lib/samba
cache directory = /var/cache/samba
pid directory = /var/run/samba
ntp signd socket directory = 
utmp directory = 
wtmp directory = 
utmp = No
default service = 
message command = 
get quota command = 
set quota command = 
remote announce = 
remote browse sync = 
nbt client socket address = 0.0.0.0
nmbd bind explicit broadcast = Yes
homedir map = auto.home
afs username map = 
afs token lifetime = 604800
log nt token command = 
NIS homedir = No
registry shares = No
usershare allow guests = No
usershare max shares = 100
usershare owner only = Yes
usershare path = /var/lib/samba/usershares
usershare prefix allow list = 
usershare prefix deny list = 
usershare template share = 
async smb echo handler = No
panic action = /usr/share/samba/panic-action %d
perfcount module = 
host msdfs = Yes
passdb expand explicit = No
idmap backend = tdb
idmap cache time = 604800
idmap negative cache time = 120
idmap uid = 
idmap gid = 
template homedir = /home/%D/%U
template shell = /bin/false
winbind separator = \
winbind cache time = 300
winbind reconnect delay = 30
winbind request timeout = 60
winbind max clients = 200
winbind enum users = No
winbind enum groups = No
winbind use default domain = No
winbind trusted domains only = No
winbind nested groups = Yes
winbind expand groups = 1
winbind nss info = template
winbind refresh tickets = No
winbind offline logon = No
winbind normalize names = No
winbind rpc only = No
create krb5 conf = Yes
ncalrpc dir = /var/run/samba/ncalrpc
winbind max domain connections = 1
winbindd socket directory = 
winbindd privileged socket directory = 
winbind sealed pipes = No
allow dns updates = disabled
dns forwarder = 
dns update command = 
nsupdate command = 
rndc command = 
multicast dns register = Yes
samba kcc command = 
server services = s3fs, rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, dnsupdate
dcerpc endpoint servers = 
spn update command = 
share backend = 
tls enabled = No
tls keyfile = 
tls certfile = 
tls cafile = 
tls crlfile = 
tls dh params file = 
rpc_server:tcpip = no
rpc_daemon:spoolssd = embedded
rpc_server:spoolss = embedded
rpc_server:winreg = embedded
rpc_server:ntsvcs = embedded
rpc_server:eventlog = embedded
rpc_server:srvsvc = embedded
rpc_server:svcctl = embedded
rpc_server:default = external
idmap_ldb:use rfc2307 = yes
idmap config * : backend = tdb
comment = 
path = 
username = 
invalid users = 
valid users = 
admin users = 
read list = 
write list = 
force user = 
force group = 
read only = Yes
acl check permissions = Yes
acl group control = No
acl map full control = Yes
acl allow execute always = No
create mask = 0744
force create mode = 00
directory mask = 0755
force directory mode = 00
force unknown acl user = No
inherit permissions = No
inherit acls = No
inherit owner = No
guest only = No
administrative share = No
guest ok = No
only user = No
hosts allow = 
hosts deny = 
allocation roundup size = 1048576
aio read size = 0
aio write size = 0
aio write behind = 
ea support = No
nt acl support = Yes
profile acls = No
map acl inherit = No
afs share = No
smb encrypt = default
durable handles = Yes
block size = 1024
change notify = Yes
directory name cache size = 100
kernel change notify = Yes
max connections = 0
min print space = 0
strict allocate = No
strict sync = No
sync always = No
use sendfile = No
write cache size = 0
max reported print jobs = 0
max print jobs = 1000
printable = No
print notify backchannel = Yes
print ok = No
printing = cups
cups options = 
print command = 
lpq command = %p
lprm command = 
lppause command = 
lpresume command = 
queuepause command = 
queueresume command = 
printer name = 
use client driver = No
default devmode = Yes
force printername = No
printjob username = %U
default case = lower
case sensitive = Auto
preserve case = Yes
short preserve case = Yes
mangling char = ~
hide dot files = Yes
hide special files = No
hide unreadable = No
hide unwriteable files = No
delete veto files = No
veto files = 
hide files = 
veto oplock files = 
map archive = No
map hidden = No
map system = No
map readonly = no
mangled names = Yes
store dos attributes = Yes
dmapi support = No
browseable = Yes
access based share enum = No
blocking locks = Yes
csc policy = manual
fake oplocks = No
kernel oplocks = No
kernel share modes = Yes
locking = Yes
oplocks = Yes
level2 oplocks = Yes
oplock contention limit = 2
posix locking = Yes
strict locking = Auto
dfree cache time = 0
dfree command = 
copy = 
preexec = 
preexec close = No
postexec = 
root preexec = 
root preexec close = No
root postexec = 
available = Yes
volume = 
fstype = NTFS
wide links = No
follow symlinks = Yes
dont descend = 
magic script = 
magic output = 
delete readonly = No
dos filemode = No
dos filetimes = Yes
dos filetime resolution = No
fake directory create times = No
vfs objects = dfs_samba4, acl_xattr
msdfs root = No
msdfs proxy = 
ntvfs handler = 


[Packages]
comment = Packages
path = /data/packages
read only = No
guest ok = Yes

Solution 1:

From the Samba Wiki:

I keep getting asked for username/password when trying to access a public share on the AD DC.

On a non AD domain, you can use 'map to guest = bad user' in smb.conf to allow windows machines that are not part of the domain, to access public shares. This will not work with an AD domain, guest access to the domain needs to be based on the 'guest' account being enabled, but unfortunately, this is not yet implemented.

I think what you want is to give "domain users" full permission on the share, ideally using windows ACL's. That's done quickly and all your users will be able to access the shares without providing their credentials.