[Samba] samba-tool crashes if include = /patch/to/%U.conf in smb.conf
Quentin Gibeaux
qgibeaux at iris-tech.fr
Tue Jul 15 03:36:45 MDT 2014
Forgot to reply to list…
On 15/07/2014 11:33, Quentin Gibeaux wrote:
> On 15/07/2014 11:25, Rowland Penny wrote:
>> On 15/07/14 08:35, Quentin Gibeaux wrote:
>>> Hi,
>>>
>>> Samba4 (4.1.9) on Ubuntu 12.04 here (seen same behavior on 4.1.6 on
>>> Ubuntu 14.04).
>>>
>>> I've encountered an annoying bug with samba-tool, some exceptions
>>> aren't caught causing the tool to crash if it finds something it
>>> doesn't like in the smb.conf.
>>> I have a specific line in my conf : "include =
>>> /etc/samba/%U.smb.conf ", it's useful for applying specific samba
>>> configuration for a specific user, it works on the samba side, but
>>> when samba-tool reads the conf, it crashs :
>>>
>>> root at server:~/samba# samba-tool user list
>>> Processing section "[global]"
>>> (…)
>>> Can't find include file /etc/samba/%U.smb.conf
>>> params.c:pm_process() - Failed. Error returned from params.c:parse().
>>> pm_process() returned No
>>> ERROR(runtime): uncaught exception - Unable to load default file
>>> File "/usr/lib/python2.7/dist-packages/samba/netcmd/__init__.py",
>>> line 175, in _run
>>> return self.run(*args, **kwargs)
>>> File "/usr/lib/python2.7/dist-packages/samba/netcmd/user.py", line
>>> 261, in run
>>> lp = sambaopts.get_loadparm()
>>> File "/usr/lib/python2.7/dist-packages/samba/getopt.py", line 92, in
>>> get_loadparm
>>> self._lp.load_default()
>>>
>>> In fact it crashes for any include with any variable substitution
>>> (%U, %g, %a…).
>>>
>>> Any ideas ?
>>>
>>> Thanks,
>>>
>>> Quentin Gibeaux
>>
>> The problem here is that samba-tool parses smb.conf even if it
>> doesn't really need to and samba4 doesn't understand %U etc.
> So why not catching the exception, printing "Warning, smb4 doesn't
> handle variable substitution" and continue ?
>> If you just want a list of users and have ldb-tools installed, try this:
>>
>> ldbsearch -H /var/lib/samba/private/sam.ldb
>> "(&(objectClass=user)(!(objectClass=computer)))" samaccountname |
>> grep sAMAccountName | sed "s|sAMAccountName: ||"
>>
> That's not why i have this include. I've a file in etc/samba :
> thespecialuser.conf, and smbd (i use s3fs and not ntvfs) applies the
> conf when it is this specific user that accesses to the shares.
>
>> Rowland
>
More information about the samba
mailing list