-1

我正在研究一个 samba 共享解决方案,但我遇到了一个问题。我有一个安装在 Solaris 10 服务器上的 NFS 共享文件夹的 RHEL 服务器;这一步一切正常。然后,我与 samba 共享同一个文件夹,以便能够从 MS Windows 机器进行只读访问。

这是我面临的问题,我的文件夹中有以下文件:

-rw-r--r--+     1     root       root         0        Jun 13 2012     file1.log
-rw-r--r--+     1     root       root         35856    Jun 13 2012     file2.log
drwxr-xr-x+     12    nobody     grp-app      4096     Jul 8 12:45     folder1
drwxr-xr-x+     10    root       root         4096     Jun 13 2012     folder2
drwx------+     2     root       root         16384    Jun 12 2012     lost+found

但是,一旦连接到 Windows 服务器上的文件夹 \server-smb\shared-folder,我只能看到:folder1。

这是我的 Samba 配置:

[shared-folder]
    comment = Shared folder
    path = /path/shared-folder
    valid users = toto
    read only = yes

以下是应用于这些文件的 ACL:

-rw-r--r--+     1     root     root     0         Jun 13 2012     file1.log
    0:owner@:read_data/write_data/append_data/read_attributes /write_attributes/read_acl/write_acl/synchronize:allow
    1:user:unknown:read_data/read_attributes/read_acl/synchronize:allow
    2:everyone@:read_data/read_attributes/read_acl/synchronize:allow
-rw-r--r--+     1     root     root     35856     Jun 13 2012     file2.log
    0:owner@:read_data/write_data/append_data/read_attributes/write_attributes/read_acl/write_acl/synchronize:allow
    1:user:unknown:read_data/read_attributes/read_acl/synchronize:allow
    2:everyone@:read_data/read_attributes/read_acl/synchronize:allow
drwxr-xr-x+     12    nobody   grp-app  4096      Jul 8 12:45     folder1
    0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory/append_data/execute/delete_child/read_attributes/write_attributes/read_acl/write_acl/synchronize:allow
    1:user:unknown:list_directory/read_data/execute/read_attributes/read_acl/synchronize:allow
    2:everyone@:list_directory/read_data/execute/read_attributes/read_acl/synchronize:allow
drwxr-xr-x+     10    root     root     4096      Jun 13 2012     folder2
    0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory/append_data/execute/delete_child/read_attributes/write_attributes/read_acl/write_acl/synchronize:allow
    1:user:unknown:list_directory/read_data/execute/read_attributes/read_acl/synchronize:allow
    2:everyone@:list_directory/read_data/execute/read_attributes/read_acl/synchronize:allow
drwx------+     2     root     root     16384     Jun 12 2012     lost+found
    0:owner@:list_directory/read_data/add_file/write_data/add_subdirectory/append_data/execute/delete_child/read_attributes/write_attributes/read_acl/write_acl/synchronize:allow
    1:user:unknown:read_attributes/read_acl/synchronize:allow
    2:everyone@:read_attributes/read_acl/synchronize:allow

您是否知道可能导致此问题的原因以及如何解决?

谢谢你。此致,

4

1 回答 1

-1

错误是由 ACL 引起的。

使用 NFS v3 或 v4 时似乎会出现 ACL 周围的错误。最新的 Samba 版本 (4.1.1) 也会出现此问题。即使在导出上设置了“no_acl”并且在挂载上设置了“noxattr”,也会出现此问题。

解决方案:在 Linux 和 Solaris 之间强制使用 NFS v2。

于 2013-11-15T13:09:34.067 回答