NFS 客户端获取权限被拒绝错误

dan*_*obo 1 linux nfs

我正在尝试在两台 Linux 机器(嵌入式)之间设置 NFS。

Foo(server) -> Bar(client)
Run Code Online (Sandbox Code Playgroud)

我在两台机器上都安装了 nfs-utils (1.3.3) 和依赖项。这是Foo 上的/etc/exports文件。

/public 10.0.1.0/24(rw,insecure,async,no_subtree_check,no_root_squash,nohide)
Run Code Online (Sandbox Code Playgroud)

/public位于本地文件系统上且未加密。

FOO# findmnt -T /public
TARGET SOURCE      FSTYPE OPTIONS
/      ubi0:rootfs ubifs  rw,relatime
Run Code Online (Sandbox Code Playgroud)

并启动守护进程:

FOO# /etc/init.d/S21-nfsd start
Mounting proc/fs/nfsd: [OK]
exportfs: /public does not support NFS export
Starting /sbin/portmap: [OK]
Starting /usr/sbin/rpc.statd: [OK]
Starting /usr/sbin/rpc.mountd: [OK]
Starting /usr/sbin/rpc.nfsd: [OK]
FOO# exportfs
/public         10.0.1.0/24
FOO# cat /proc/fs/nfs/exports
# Version 1.1
# Path Client(Flags) # IPs
Run Code Online (Sandbox Code Playgroud)

有了上面的内容,我不确定/public是否真的被导出了。

该目录具有完全权限:

FOO# ls -ld /public
drwxrwxrwx    2 root     root           160 Jan 13  1990 /public
Run Code Online (Sandbox Code Playgroud)

在客户端上,我尝试挂载 NFS 共享:

BAR# mount -t nfs -vvvv FOO:/public /public
mount: FOO:/public failed, reason given by server: Permission denied
mount: mounting FOO:/public on /public failed: Bad file descriptor
Run Code Online (Sandbox Code Playgroud)

我在两台机器上都使用 root 帐户,并且 uids 匹配:

FOO# id
uid=0(root) gid=0(root) groups=0(root)
BAR# id
uid=0(root) gid=0(root) groups=0(root)
Run Code Online (Sandbox Code Playgroud)

两台机器都支持内核,FOO->kernel 2.6.35,BAR->kernel 4.1.18:

FOO# zcat /proc/config.gz|grep "NFS"
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
# CONFIG_NFS_V3_ACL is not set
# CONFIG_NFS_V4 is not set
CONFIG_ROOT_NFS=y
CONFIG_NFSD=y
CONFIG_NFSD_V2_ACL=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_V3_ACL=y
CONFIG_NFSD_V4=y
CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y

BAR# zcat /proc/config.gz | grep "NFS"
CONFIG_KERNFS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V2=y
CONFIG_NFS_V3=y
CONFIG_NFS_V3_ACL=y
CONFIG_NFS_V4=y
# CONFIG_NFS_SWAP is not set
# CONFIG_NFS_V4_1 is not set
CONFIG_ROOT_NFS=y
# CONFIG_NFS_USE_LEGACY_DNS is not set
CONFIG_NFS_USE_KERNEL_DNS=y
# CONFIG_NFSD is not set
CONFIG_NFS_ACL_SUPPORT=y
CONFIG_NFS_COMMON=y
Run Code Online (Sandbox Code Playgroud)

我的问题在哪里?客户端?服务器端?

Kus*_*nda 5

Linux 内核FOO版本为 2.6.35(从 2011 年末开始)。它支持 UBIFS(根分区上的文件系统,自 2008 年的内核版本 2.6.27 以来),但在 2016/2017 期间的某个时候添加了内核支持从 UBIFS 导出 NFS 挂载。

这意味着您的FOO系统将无法导出,/public直到它的内核升级到更新的内核,或者直到您将目录移动到其他文件系统。