Re: samba4 unter ZFS

From: Peter Ross <Peter.Ross(at)alumni.tu-berlin.de>
Date: Tue, 1 Oct 2013 14:44:26 +1000 (EST)

On Mon, 30 Sep 2013, Peter Ross wrote:

> Wenn ich df richtig aufdrösele, nutzt das die libc-Funktion getmntinfo, und
> das wiederum geht auf kern_getfsstat in ./kern/vfs_syscalls.c zurück und in
> der Funktion sehe ich ein if (prison_canseemount..)
>
> aber wenn ich Dich richtig verstehe, sollten die Funktionen vfsconf2x und
> vfsconf2x32 ebenfalls einen solchen Check bekommen?
>
> Für mich sieht es so aus, als wenn schon mal jemand drüber nachgedacht hat
> ("besser wir verstecken die Mountinformationen vor den Jails"), dann aber das
> in.. sysctl_vfs_conflist(?) vergessen hat?
>
> Das müßte dann in dem Abschnitt
>
> TAILQ_FOREACH(vfsp, &vfsconf, vfc_list) {
> bzero(&xvfsp, sizeof(xvfsp));
> vfsconf2x(vfsp, &xvfsp);
> error = SYSCTL_OUT(req, &xvfsp, sizeof xvfsp);
> if (error)
> break;
> }
>
> äquivalent to dem in kern_getfsstat ein Test eingefügt werden.

Das ist falsch, ich habe das beim ersten Lesen als eine Iteration
über Filesysteme gesehen, es ist aber eine Liste von Informationen per
Filesystyemtyp.

Wenn man wirklich wissen will, welche Filesysteme das Jail sehen kann, muß
man dann doch durch alle Mounts durch..

Wenn man das nicht macht: Statt "0" als Refcount sollte dann doch eher ein
"Not permitted" für den syscall kommen, sonst ist das eher verwirrend?

Dann müßte Dein Skript aber auch auf was anderem aufbauen, um mir im Jail
sagen zu können, ob ZFS darin eine Rolle spielt.

Eigentlich sollte im Falle von Samba der Check des Filesystemtyps pro
Share stattfinden, denn ich kann ja durchaus einen Mix von Filesystemen
haben.. (Ich will da lieber nicht weiter drüber nachdenken;-)

Nun gut.. im Moment kann ch Deine Skriptidee mit sysctl_vfs_conflist
verwenden.

Ich habe aber ein anderes Problem, was mit meiner Unbedarftheit in
Richtung Python und Samba zu tun hat: das Laden von Modulen.

Samba hat ladbare Module und eines ist zfsacl.so.

Ich finde:

% pkg query %Fp samba4 | grep zfs
/usr/local/lib/shared-modules/vfs/zfsacl.so

aber:

% pkg query %Fp samba4 | grep xattr | grep '.so'
/usr/local/lib/python2.7/site-packages/samba/dcerpc/xattr.so
/usr/local/lib/python2.7/site-packages/samba/xattr_native.so
/usr/local/lib/python2.7/site-packages/samba/xattr_tdb.so
/usr/local/lib/samba/libxattr_tdb.so
/usr/local/lib/shared-modules/vfs/acl_xattr.so
/usr/local/lib/shared-modules/vfs/streams_xattr.so
/usr/local/lib/shared-modules/vfs/xattr_tdb.so

Wenn ich es richtig verstehe, wird mit
"import samba.xattr_native" in samba/ntacl.py
   /usr/local/lib/python2.7/site-packages/samba/xattr_native.so
geladen.

Ist /usr/local/lib/python2.7/site-packages/samba/xattr_native.so)
ein Wrapper um die "System-Bibliotheken" unter
/usr/local/lib/shared-modules/vfs ?)

D.h. muß erst noch eine solcher "Python-Wrapper" um zfsacl.so gebaut
werden, damit ich es in einem Python-Skript (und nicht nur im s3fs-Binary)
benutzen kann?

Es grüßt
Peter

To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Tue 01 Oct 2013 - 06:45:02 CEST

search this site