Re: [PATCH 04/29] cifs: implement get acl method

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Sep 23, 2022 at 3:38 AM Christian Brauner <brauner@xxxxxxxxxx> wrote:
>
> On Thu, Sep 22, 2022 at 10:52:43PM -0500, Steve French wrote:
> > Looks like the SMB1 Protocol operations for get/set posix ACL were
> > removed in the companion patch (in SMB3, POSIX ACLs have to be handled
>
> Sorry, what companion patch? Is a patch in this series or are you
> referring to something else?

I found it - the patch order was confusing (I saw patches 4 and 27,
but patch 5 was
missed).  The functions I was asking about were deleted in patch 27 in
your series but readded in patch 5 which I had missed.

On the more general topic of POSIX ACLs:
- Note that they are supported for SMB1 (to some servers, including Samba)
- But ... almost all servers (including modern ones, not just ancient
SMB1 servers) support "RichACLs" (remember that RichACLs  were
originally based on SMB/NTFS ACLs and include deny ACEs so cover use
cases that primitive POSIX ACLs can't handle) but for cifs.ko we have
to map the local UID to a global unique ID for each ACE (ie id to SID
translation).  I am interested in the topic for how it is recommended
to map "POSIX ACLs" to "RichACLs."  I am also interested in making
sure that cifs.ko supports the recommended mechanism for exposing
"richacls" - since there are various filesystems that support RichACLs
(including NFS, cifs.ko, ntfs and presumably others) and there are
even xfstests that test richacls.


> > by mapping from rich acls).  Was this intentional or did I miss
> > something? I didn't see the functions for sending these over the wire
> > for SMB1 (which does support POSIX ACLs, not just RichACLs (SMB/NTFS
> > ACLs))
>
> I'm sorry, I don't understand. This is basically a 1:1 port of what you
> currently have in cifs_xattr_set() and cifs_xattr_get() under the
> XATTR_ACL_DEFAULT and XATTR_ACL_ACCESS switches. So basically, the
> patches in this series just add almost 1:1 copies of
> CIFSSMBSetPosixACL() and CIFSSMBGetPosixACL() just that instead of
> operating on void * they operate on a proper vfs struct posix acl. So
> nothing would've changed behavior wise. Ofc, there's always the chance
> that I missed sm especially bc I'm not a cifs developer. :)
>
> >
> >         pSMB->SubCommand = cpu_to_le16(TRANS2_SET_PATH_INFORMATION);
> >         pSMB->InformationLevel = cpu_to_le16(SMB_SET_POSIX_ACL);



-- 
Thanks,

Steve



[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux