This list has been deprecated. Please subscribe to the new devel list at 
lists.nfs-ganesha.org.
I can’t think of any reason it would be an issue.

 

Frank

 

From: Sagar M D [mailto:sagar...@gmail.com] 
Sent: Monday, May 28, 2018 5:37 AM
To: Frank Filz <ffilz...@mindspring.com>
Cc: d...@redhat.com; nfs-ganesha-devel@lists.sourceforge.net
Subject: Re: [Nfs-ganesha-devel] ACE permission check

 

Thanks Frank for detailed explanation.

I have the folder permission checked in our FSAL then. 
I hope calling fsal_test_access function of ganesha should be fine from our 
FSAL.

-Sagar.

 

On Mon, May 28, 2018 at 12:13 PM, Frank Filz <ffilz...@mindspring.com 
<mailto:ffilz...@mindspring.com> > wrote:

Yes, your FSAL could do the permission checks. It should take measures to lock 
the directory(ies) involved in the operation (rename is nasty). Rename is the 
big nasty because it may hide an unlink. If you have more than one NFS server 
process running (Ganesha or otherwise), you should have some way of locking out 
the other NFS servers for proper protection.

 

So the problem with rename is thus:

 

Start to process Rename d1/f1 to d2/f2 where y exists

Do permission check

User has permission to create file in d2 and has permission to delete f2

Something races, and replaces f2 with a new file which user DOES NOT have 
permission to unlink

Process rename which unlinks the new f2

 

If you can lock the directories, you can prevent the race.

 

Note that in general I’m not worried about racing with a permission change 
since if the user at one time had permission to do something, the fact that we 
technically allow the user permission to do that after the permission was 
revoked is not terrible. The user could have won the race and got to do the 
thing before he lost permission.

 

The problem with rename is the race places a different file in the cross hairs 
AFTER we have done the permission check, a file the user NEVER had permission 
to unlink.

 

You may decide this scenario is unlikely and not worry, but it’s the ultimate 
reason we deferred to the filesystem for permission checks of directory 
operations.

 

Also, the locking of multiple objects is hard to do correctly to avoid deadlock…

 

Frank

 

From: Sagar M D [mailto:sagar...@gmail.com <mailto:sagar...@gmail.com> ] 
Sent: Sunday, May 27, 2018 4:41 AM
To: Frank Filz <ffilz...@mindspring.com <mailto:ffilz...@mindspring.com> >
Cc: d...@redhat.com <mailto:d...@redhat.com> ; 
nfs-ganesha-devel@lists.sourceforge.net 
<mailto:nfs-ganesha-devel@lists.sourceforge.net> 
Subject: Re: [Nfs-ganesha-devel] ACE permission check

 

Frank/Daniel,

Creds are correct,  ACL implementation in our FSAL is new, basic RWX permission 
is enforced in our FSAL on this path.

Currently ACL's are not enforced in our Filesystem. We are relying on ganesha 
to enforce ACL.

can our FSAL make call to fsal_test_access instead (wherever we need to 
enforce) ?

P.S:- Our filesystem is accessed either through nfs Ganesha or our own nfs 
server (anyone will be active at given time). 


Thanks,

Sagar.

 

 

On Fri, May 25, 2018 at 10:14 PM, Frank Filz <ffilz...@mindspring.com 
<mailto:ffilz...@mindspring.com> > wrote:

This list has been deprecated. Please subscribe to the new devel list at 
lists.nfs-ganesha.org <http://lists.nfs-ganesha.org> .
> This list has been deprecated. Please subscribe to the new devel list at 
> lists.nfs-
> ganesha.org <http://ganesha.org> .
> So, the access check is, of course, advisory to the client.  It doesn't have 
> to
> make one at all, but can just issue the rename, and expect it to succeed or 
> fail
> based on permissions.  I'm not sure why the client does an access and then 
> still
> does a rename, but it ultimately doesn't matter, I think.
> 
> We don't do an extra access check in the rename path, because it could race
> with a permissions change anyway.  Instead, we rely on the FSAL's
> rename() call to properly enforce permissions.  This is the way many calls 
> work in
> the FSAL API, to avoid those races.
> 
> Does your rename() call not enforce permissions?  Or did it somehow succeed in
> spite of that?  Were the wrong creds passed in?

Yea, while Ganesha does some permission checking itself, it MUST depend on the 
FSAL and its underlying filesystem to permission check any directory 
operations. This is due to the issues of making a permission check atomic with 
the operation.

What kind of ACLs does your FSAL and filesystem implement? Does the filesystem 
have mechanisms to enforce the ACL?

Do you set/pass the user credentials for the operations? See what FSAL_VFS and 
FSAL_GLUSTER do for examples.

Frank

> > By looking at nfs-Ganesha code, permission check (ACL) happens
> > access_check.c. Our FSAL (not in tree FSAL), storing and serving the
> > ACLs to Ganesha.
> >
> > I see an issue with rename:
> > Even though i set deny ACE for "delete child" on folder1 for user1.
> > user1 is able to rename file belongs to user2.
> >
> > I see below RPC:-
> > ACCESS request folder1
> > ACCESS denied (as expected.) (denied for DELETE_CHILD permission)
> > Rename request Rename succeed
> >
> > I'm not sure why client is sending rename even after receiving  ACCESS
> > Denied.
> >
> > Native nfs denies rename though.
> >
> > Any help is appreciated here.
> >
> > Thanks,
> > Sagar.
> >
> >
> >
> >
> > ----------------------------------------------------------------------
> > -------- Check out the vibrant tech community on one of the world's

> > most engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> >
> >
> >
> > _______________________________________________
> > Nfs-ganesha-devel mailing list
> > Nfs-ganesha-devel@lists.sourceforge.net 
> > <mailto:Nfs-ganesha-devel@lists.sourceforge.net> 
> > https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel
> >
> 
> 
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most engaging tech
> sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Nfs-ganesha-devel mailing list
> Nfs-ganesha-devel@lists.sourceforge.net 
> <mailto:Nfs-ganesha-devel@lists.sourceforge.net> 
> https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel


------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net 
<mailto:Nfs-ganesha-devel@lists.sourceforge.net> 
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel

 

 

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Nfs-ganesha-devel mailing list
Nfs-ganesha-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nfs-ganesha-devel

Reply via email to