我在RHEL 5.3服务器(charlie)和RHEL 5.4客户端(simcom1)之间configuration了nfs4。 这些机器被configuration为通过名为“alpha”的Windows Server 2008活动目录机器通过Kerberos对用户进行身份validation。 Alpha也可以作为本地networking的dns和dhcp机器。
我注意到,当用户第一次loginRHEL机器时,他们被发给该机器一个唯一的uid; 第一个用户login得到10001.所以,我看到的是simcom1和charlie之间的用户有不同的UID。 当用户在nfs4挂载中执行'ls -la'命令时,我会认为所有者列中的用户名将表示'nobody'或者至less是错误的用户名 – 因为每个用户的机器之间的UID是不同的,并不是所有的用户都login到每台机器上。
但是,simcom1能够正确parsing通过nfs4驻留在charlie上的文件执行的'ls -la'中的用户名。 最令人担忧的是用户无法通过nfs mount来写入文件。
charlie服务器的根目录以rw格式导出。 客户端simcom1将导出装载为rw。 我的configuration如下所示。
我的问题是,如何configurationRHEL机器以允许用户通过nfs4写入已经挂载为读/写的文件?
[root@charlie ~]# more /etc/exports / 10.100.0.0/16(rw,no_root_squash,fsid=0) [root@charlie ~]#cat /etc/sysconfig/nfs # # Define which protocol versions mountd # will advertise. The values are "no" or "yes" # with yes being the default #MOUNTD_NFS_V1="no" #MOUNTD_NFS_V2="no" #MOUNTD_NFS_V3="no" # # # Path to remote quota server. See rquotad(8) #RQUOTAD="/usr/sbin/rpc.rquotad" # Port rquotad should listen on. #RQUOTAD_PORT=875 # Optinal options passed to rquotad #RPCRQUOTADOPTS="" # # # TCP port rpc.lockd should listen on. #LOCKD_TCPPORT=32803 # UDP port rpc.lockd should listen on. #LOCKD_UDPPORT=32769 # # # Optional arguments passed to rpc.nfsd. See rpc.nfsd(8) # Turn off v2 and v3 protocol support #RPCNFSDARGS="-N 2 -N 3" # Turn off v4 protocol support #RPCNFSDARGS="-N 4" # Number of nfs server processes to be started. # The default is 8. RPCNFSDCOUNT=8 # Stop the nfsd module from being pre-loaded #NFSD_MODULE="noload" # # # Optional arguments passed to rpc.mountd. See rpc.mountd(8) #STATDARG="" #RPCMOUNTDOPTS="" # Port rpc.mountd should listen on. #MOUNTD_PORT=892 # # # Optional arguments passed to rpc.statd. See rpc.statd(8) #RPCIDMAPDARGS="" # # Set to turn on Secure NFS mounts. SECURE_NFS="no" # Optional arguments passed to rpc.gssd. See rpc.gssd(8) #RPCGSSDARGS="-vvv" # Optional arguments passed to rpc.svcgssd. See rpc.svcgssd(8) #RPCSVCGSSDARGS="-vvv" # Don't load security modules in to the kernel #SECURE_NFS_MODS="noload" # # Don't load sunrpc module. #RPCMTAB="noload" # [root@simcom1 ~]# cat /etc/fstab --start snip-- charlie:/home /usr/local/dev/charlie nfs4 rw,nosuid, 0 0 --end snip-- [brendanmac@simcom1 /usr/local/dev/charlie/brendanmac]# touch file touch: cannot touch 'file': Permission denied [brendanmac@simcom1 /usr/local/dev/charlie/brendanmac]# su Password: [root@simcom1 /usr/local/dev/charlie/brendanmac]# touch file [root@simcom1 /usr/local/dev/charlie/brendanmac]# ls -la file -rw------- 1 root root 0 May 26 10:43 file
我有完全相同的问题,并发现问题是什么:问题是,nfsv4使用idmapd和idmapd做userid =>名称之间的映射,而不是其他的方式。 换句话说,它不能工作。 看到正确的权限用户和组只是幻想和混淆,但是当你使用文件系统时,它仍然使用旧的通过uid映射的方式。 所以服务器端的uid应该和客户端的那个用户一样。 Otherwhise创build文件,…将失败,权限被拒绝。 除非uid匹配当然。
参考: http : //thread.gmane.org/gmane.linux.nfsv4/7103/focus=7105