看板 FB_stable 關於我們 聯絡資訊
On May 1, 2014, at 5:48 PM, Rick Macklem <rmacklem@uoguelph.ca> wrote: > Craig Yoshioka wrote: >> I=92ve posted this same email to the linux NFS mailing list since I >> think it might be client-side problem, but thought I might look for >> input here as well. >> = >> problem: when using chown as root on a nfs4 filesystem on newer linux >> releases file owners get sets to nobody. >> the user type doesn=92t seem to matter (/etc/passwd, LDAP, >> Samba4) >> = >> setup: Server is FreeBSD 10 system with NFSv4 share. >> Server and clients are all configured with the same idmap >> domain >> Network users have consistent uid/gid on server and clients >> clients with older linux releases work OK (Ubuntu 12.04, CentOS >> 5 and 6) >> clients with newer linux releases do not work ( Fedora 20, >> Ubuntu 14.04, Mint 16 ) >> = >> clues: >> = >> 1. working and non-working systems get to the same fchownat() system >> call with the same arguments (via strace). >> = >> example (identical on working and non-working client): >> ... >> fchownat(AT_FDCWD, "/mnt/test", 11111, 4294967295, 0) =3D 0 >> close(1) =3D 0 >> close(2) =3D 0 >> close(4) =3D 0 >> exit_group(0) =3D ? >> +++ exited with 0 +++ >> = >> 2. working system sends NFSV4 SETATTR request with owner set to: >> matlab@nimgs.com and non-working as 11111 (via wireshark) >> = > Yuck. RFC-3530 strongly encouraged use of <user>@<domain> names > to identify users. rfc-3530bis (not yet an RFC afaik) "clarified" > this to allow a server to return the number as a string (something > done early in NFSv4 development for testing). > = > This happened because Linux wanted to put the uid in a string so > that NFSv4 mounted root file systems could be done more easily. > (My understanding was that the client is now expected to understand > a uid in a string, but I didn't think the server was required to > accept it for a setattr.) > = From what I was told, trying a uid string is only a fallback scenario for t= he client. Instead, it turns out root (uid 0) was improperly triggering a = conditional that mapped it to nobody on maproot exports. I just tried a fi= xed version and it works now. > There is a configuration option in the Linux nfsd that disables > this for the Linux server side (sorry, I can't remember what it is > and I don't know if this same setting changes client behaviour?). > = echo N >/sys/module/nfs/parameters/nfs4_disable_idmapping was suggested for me on the client-side, which also worked after restarting= the idmap service and remounting. = > This is the first time I've heard of the Linux client putting the > uid in a string (but I guess I'm not surprised). > = > Hopefully there is a mount (or configuration) option that tells > it to use <user>@<domain> for the mount. If there isn't such a > beast, changing the server to accept the uid as a string is easy, > although I thought doing so actually violated RFC-3530. > (I'll admit I haven't looked closely at a recent draft of > rfc-3530bis to see what it says. This document wasn't supposed > to change the protocol, but just clarify it, however I think it > has gone beyond that.) > = > If you can find a mount/configuration option, please email with > that. If not, email and I'll give you a patch that can optionally > allow the server to handle the uid in a string. > = > rick It seems it is now fixed, or as a workaround, one can set that client side = nfs parameter. I=92m kinda glad FreeBSD didn=92t take the uid because it w= ould probably have masked the bug. OTH, it seems sending the uid is still = a possible fallback. maybe if the server can=92t find and return a user na= me?, so it=92s likely FreeBSD NFS4 servers will still get calls with uid st= rings in the future. > = >> = >> = >> 3. I can=92t rule out misconfiguration. but I=92ve configured as >> identically as I could, and tried a lot of small vairations. these >> are my current settings (the pipefs settings are the distro >> defaults) >> = >> _______________________________________________ >> freebsd-stable@freebsd.org mailing list >> http://lists.freebsd.org/mailman/listinfo/freebsd-stable >> To unsubscribe, send any mail to >> "freebsd-stable-unsubscribe@freebsd.org" _______________________________________________ freebsd-stable@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-stable To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"