[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