I'm having a problem I don't understand: when one ZFS filesystem is
mounted inside another, and the outer one is shared using cifs, the
inner file system isn't accessible via the outer share.
To demonstrate the problem: suppose I have two ZFS filesystems, one
mounted inside the other. Let's suppose they are called tank/outer and
tank/outer/inner:
# zfs create -o casesensitivity=insensitive tank/outer
# zfs create -o casesensitivity=insensitive tank/outer/inner
Suppose I share tank/outer, but not tank/outer/inner:
# zfs sharesmb=name=outer tank/outer
# zfs sharesmb=off tank/outer/inner
# sharemgr show -v
zfs
zfs/tank/outer
outer=/tank/outer
And finally, suppose I reset ownership and permissions to be sure
there's full access to me (my username is barrkel, and is the same
account that I access the share from using Windows XP SP3):
# /bin/chown -R barrkel:staff /tank/outer
# /bin/chmod -R A=everyone@:full_set:fd:allow /tank/outer/
# /bin/ls -vR /tank/outer/
/tank/outer/:
total 4
drwxrwxrwx+ 2 barrkel staff 2 Mar 16 10:56 inner
0:everyone@:list_directory/read_data/add_file/write_data
/add_subdirectory/append_data/read_xattr/write_xattr/execute
/delete_child/read_attributes/write_attributes/delete/read_acl
/write_acl/write_owner/synchronize:file_inherit/dir_inherit:allow
/tank/outer/inner:
total 0
It certainly looks like I ought to be able to access "inner" via the
"outer" share. So, I go over to Windows and try to access it from Cygwin
(the OpenSolaris machine is called rupert):
$ ls //rupert/outer
ls: cannot access //rupert/outer/inner: No such file or directory
inner
$ echo test > //rupert/outer/test.txt
$ cat //rupert/outer/test.txt
test
$ echo test2 > //rupert/outer/inner/test.txt
bash: //rupert/outer/inner/test.txt: Permission denied
$ cat //rupert/outer/inner/test.txt
cat: //rupert/outer/inner/test.txt: Permission denied
Is the scenario I am trying to enable simply not supported by cifs
and/or ZFS?
The case of multiple file systems accessible over a Windows share is
already possible without involving non-MS software at all, since Windows
can mount filesystems at arbitrary directories in the file system, so
long as the filesystems are all NTFS. Similarly, Windows junctions can
be used to make a directory on one file system look like it's attached
to another (roughly like a symlink, only more transparent), and this
functionality is transparent to network shares.
-- Barry
--
http://barrkel.blogspot.com/
_______________________________________________
cifs-discuss mailing list
[email protected]
http://mail.opensolaris.org/mailman/listinfo/cifs-discuss