[Samba] Environment variables in smb.conf -- inconsistent results
Jeremy Allison
jra at samba.org
Mon Nov 28 14:38:07 MST 2011
On Sat, Nov 26, 2011 at 07:01:58PM -0700, E. Westbrook wrote:
> Hello!
>
> I am trying to use environment variables in my samba configuration file.
> The %$() directive does not seem to work consistently. Do I misunderstand
> something?
>
> As a success example, "include = %$(SVCDIR)/conf/smb-shares.conf" works
> fine. Logging with debuglevel = 3 indicates successful inclusion of the
> secondary file.
>
> However, as a failure example, "interfaces = %$(INTERFACES)" does not work
> at all, and I get an error such as:
>
> interpret_string_addr_internal: getaddrinfo failed for name %$(INTERFACES)
> > [Name or service not known]
> > interpret_interface: Can't find address for %$(INTERFACES)
> >
>
> As another failure example, pointing to a passdb backend using "passdb
> backend = tdbsam:%$(SVCDIR)/conf/smbusers" fails to substitute the
> environment variable similarly, to wit:
>
> tdb(unnamed): tdb_open_ex: could not open file %$(SVCDIR)/conf/smbusers: No
> > such file or directory
> > Could not open tdb: No such file or directory
> > tdbsam_open: Failed to open/create TDB passwd [%$(SVCDIR)/conf/smbusers]
> > tdbsam_getsampwnam: failed to open %$(SVCDIR)/conf/smbusers!
>
>
> What gives? Am I doing something wrong? Shouldn't %$() do a substitution
> anywhere it is supplied?
Yes, it should be. Anything that pulls a parameter through lp_string()
should call talloc_sub_basic() which does the environment variable
substitutions.
Jeremy.
More information about the samba
mailing list