Greetings,
I'm using 2.0.0-alpha13 on Solaris (compiling with gcc 2.8.1 on Solaris
2.5, running on 2.5, 2.5.1, and 2.6). I see this in the smb.conf.5
man page:
nis homedir (G)
Get the home share server from a NIS (or YP) map. For unix
systems that use an automounter, the user's home directory
will often be mounted on a workstation on demand from a
remote server. When the Samba logon server is not the actual
home directory server, two network hops are required to
access the home directory and this can be very slow espe-
cially with writing via Samba to an NFS mounted directory.
This option allows samba to return the home share as being
on a different server to the logon server and as long as a
samba daemon is running on the home directory server, it
will be mounted on the Samba client directly from the direc-
tory server. When Samba is returning the home share to the
client, it will consult the NIS (or YP) map specified in
"homedir map" and return the server listed there.
Default: nis homedir = false
Example: nis homedir = true
... and ...
homedir map (G)
If "nis homedir" is true, this parameter specifies the NIS
(or YP) map from which the server for the user's home direc-
tory should be extracted. At present, only the Sun
auto.home map format is understood. The form of the map is:
username server:/some/file/system
and the program will extract the servername from before the
first ':'. There should probably be a better parsing system
that copes with different map formats and also Amd (another
automounter) maps.
NB: The -DNETGROUP option is required in the Makefile for
option to work and on some architectures the line -lrpcsvc
needs to be added to the LIBSM variable. This is required
for Solaris 2, FreeBSD and HPUX.
See also "nis homedir"
Default: homedir map = auto.home
Example: homedir map = amd.homedir
I have four pure NFS fileservers. By "pure", I mean that they are
absolutely not NFS clients. I do not automount /home on my fileservers.
I have Samba 2.0.0-alpha13) running on all four servers with these
lines in each smb.conf file:
nis homedir = True
homedir map = auto_home
If I don't specify "path =" in the smb.conf file, the server
logfile
shows that Samba simply gets the home directory out of the passwd map
(/home/username) and attempts to use it. OK, so I specify "path =
%p",
and the log shows the server extracting the
"/export/partition/username"
path from the auto_home map and using it. This works if the home
directory is on the server that the user is connecting to. When the
user connects to some other server, I expect something to happen that
results in the client connecting to the correct server. Instead, the
client gets an error.
Looking at the code, it appears that the only time smbd will extract
the server name from the automount map is when it's translating the
%N parameter. Inserting %N in the "path =" line in various ways
invariably fails. I've tried "\\%N\%p", "%N:%p", and
some other
less likely alternatives.
Is this supposed to work? What is the syntax of the "path =" line?
Do I need to put the %N in some other line? Do I need to go read the
sources some more???
If I've overlooked something obvious, please be gentle with your flames.
All suggestions will be welcome!
Thanks!
Paul Allen
--
Paul L. Allen | voice: (425) 865-3297 fax: (425) 865-2964
Unix Technical Support | paul.l.allen@boeing.com
Boeing AR&T Site Operations, POB 3707 M/S 7L-68, Seattle, WA 98124-2207
---
"Hack, then; strive against Mighty Problems, have joy in thy Striving,
and let the Crashes fall where they may (maintaining the while, for the
Good of thy Karma, a Rigorous Backup Policy)."
-- from "The Loginataka", Eric S. Raymond