All of lore.kernel.org
 help / color / mirror / Atom feed
* NFSv4 security negotiation issue
@ 2015-09-15 15:52 Chuck Lever
  2015-09-15 16:33 ` Frank Filz
  0 siblings, 1 reply; 9+ messages in thread
From: Chuck Lever @ 2015-09-15 15:52 UTC (permalink / raw)
  To: Linux NFS Mailing List

Hi-

We've found an unexpected behavior with mount security
negotiation in the current Linux NFS client.

Given two real shares on an NFS server: one is a sys-only
share, and the other is a krb5-only share. When we try to
mount the sys-only share without specifying a sec= option,
it fails. Specifying sec=sys is successful.

What is seen on the wire:

1. The client attempts to access the pseudofs, and negotiates
krb5

2. The client walks down the pseudofs namespace to the
sys-only share

3. The client attempts to access the sys-only share with krb5
and gets WRONGSEC

4. The client negotiates sys, and continues setting up the
mount

5. nfs_fs_mount_common() invokes nfs_get_root(), but it
uses the pseudofs superblock, so it does a GETATTR on the
share's root directory with krb5, and that fails

At this point the client gives up, and the mount attempt
fails.

We could alter the server to allow a GETATTR with the
same flavor as the underlying directory. But seems like
the problem is on the client: it should use the negotiated
flavor that is appropriate to the share, not the flavor
appropriate for the pseudofs.

Any thoughts?


--
Chuck Lever




^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2015-09-15 20:41 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-09-15 15:52 NFSv4 security negotiation issue Chuck Lever
2015-09-15 16:33 ` Frank Filz
2015-09-15 17:15   ` Chuck Lever
2015-09-15 17:41     ` Frank Filz
2015-09-15 18:17       ` Chuck Lever
2015-09-15 18:45         ` Frank Filz
2015-09-15 19:11           ` Chuck Lever
2015-09-15 20:28             ` Frank Filz
2015-09-15 20:36               ` Chuck Lever

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.