====== Samba on a FreeBSD Mini FAQ ======
===== Compilation =====
* ''%%ERROR: No locking available. Running Samba would be unsafe%%''
Q: When I compile Samba from ports I get error that looks like:
checking how to build vfs_cap... shared
checking how to build vfs_expand_msdfs... shared
checking how to build vfs_shadow_copy... shared
Using libraries:
LIBS = -lcrypt -liconv
AUTH_LIBS = -lcrypt -lpam -lpam
checking configure summary... ERROR: No locking available. Running Samba would be unsafe
configure: error: summary failure. Aborting config
===> Script "configure" failed unexpectedly.
A: This message means that ''%%configure%%'' check wasn't able to verify presence and/or correct work of the file locking system calls ''%%flock(2)%%'' and/or ''%%fcntl(2)%%''. If you are running -CURRENT there is a slim chance that something related was broken in the recent ''%%libc%%'' or ''%%kernel%%'', but most common reason is that...
You are keeping your ports collection tree on an NFS share and don't have properly configured RPC locking on your NFS server and/or client. Please, check [[http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-nfs.html|Handbook]] for more details. In short, you have to make sure that RPC locking is enabled **both for an NFS server and a client**. Make sure that your ''%%/etc/rc.conf%%'' contains:
rpcbind_enable="YES"
rpc_lockd_enable="YES"
rpc_statd_enable="YES"
As a workaround you can also set ''%%WRKDIRPREFIX%%'' variable in the ''%%/etc/make.conf%%'' to point to the local file system:
WRKDIRPREFIX= /var/tmp
or, point ''%%WRKDIR%%'' there:
# make WRKDIR=/var/tmp/samba install clean
===== Usage =====
Q: How to use pdb_multi? What are the configuration options?
A: Unfortunately, there isn't much documentation regarding ''%%pdb_multi%%''(as well as ''%%pdb_mysql%%'' and ''%%pdb_pgsql%%'').
Here is the example how I used it to temporary override user password to a known one for **automatic** transfer of mailboxes from Kerio to Exchange. Replacing user password in the LDAP was another option, but using temporary alternative password database via Samba was a better solution.
Here is the config line:
passdb backend = multi:smbpasswd,ldapsam:ldap://ldap.example.com/
''%%smbpasswd%%'' backend was used for it's simplicity, as it can be easily edited by any text editor. For the production use ''%%tdbsam%%'' or other backend would be more appropriate.