[Samba] ACL misbehavior moving from POSIX ACL -> acl_xattr
Miguel Medalha
miguelmedalha at sapo.pt
Fri Sep 18 12:06:41 MDT 2009
Please pardon me if I insist, but I am doing it with the interest of the
community in mind, not just bitching about it.
I understand that if you address the problem of full compatibility with
Windows ACLs you risk to break compatibility with other clients, such as
NFS clients. Yet, in numerous cases Samba provides services to Windows
clients only. Many people will use a Linux server to provide services to
a network of Windows clients. This is very common. Even Linux clients
can use CIFS to connect.
This is why it seems to me that an optional special behavior of samba,
maybe through a VFS module, would be highly adequate to address this
problem.
> Remember, the NTACL vfs module calls down to a lower layer
> module to set the mapped acl onto the underlying filesystem.
>
> Without a null ACL module you'll get the following problem:
>
> If you don't have posix acls on the filesystem how do you
> map an incoming ACL containing two or more users or groups ?
>
Please consider the following:
- The underlying file system would need no ACLs and all files would be
owned *by a special user* possessing common ugw 777/666 rights over them.
- A special VFS module would then receive all requests from clients. All
permissions and user/group rights would be taken care of by the VFS
module and stored as extended attributes (I am assuming, of course that
the storage space provided to extended attributes by the filesystem is
big enough for that purpose. If not, could another storage method be
envisioned?). Clients would never communicate directly with the
underlying filesystem, all operations would be conducted by means of the
VFS layer.
- This VFS module would be turned on by a smb.conf entry and the options
for the VFS module would also allow a system administrator to chose a
name of his for that special user, in order to make it unique and
different from all other systems out there.
- Even if none of the current VFS modules is capable of the described
behavior, it seems to me that it would be VERY advantageous to produce a
new one for the certainly very numerous users needing the described
functionality. Only users needing it would use the proper VFS module, to
the others the current status would remain unchanged.
I really don't see why this could not be implemented. Perhaps it goes
somewhat against established thinking but it really seems possible to me.
NOTE: Perhaps we wouldn't even need a VFS module, only a smb.conf
parameter to switch the behavior of the samba daemon? Please note: all
disk operations would be done in the name of that special user, using
full permissions. Ownership and rights would then be "filtered" by the
adequate layer to be seen by clients in the appropriate way.
Best regards
Miguel
More information about the samba
mailing list