我在我的 Ubuntu 10.04 机器上设置了一个共享,Mac 可以看到它、连接到它,并且可以对它进行写入。
当我尝试将整个树复制到共享时,出现错误信息“由于您无权访问某些项目,因此无法完成操作”。如果我压缩目录并将其复制过来,则会成功。
有什么解释吗?
我的smb.conf:
[global]
workgroup = wg
netbios name = ubuntu
security = user
[Wife Debris]
path = /home/wife/wifedebris
read only = no
guest ok = no
force user = wife
force group = wife
编辑:
部分复制的树。每个 Filename.docx 文件也有一个 ._Filename.docx,并且每个复制的目录也有一个同级的 0 字节 ._Directory 文件。此外,每个复制的目录都有一个 .DS_Store 和 ._.DS_Store 文件。
答案1
这听起来像是潜在的权限问题。没有默认创建掩码或者目录掩码为共享设置,因此您将获得默认权限掩码。这些可能不是合理的默认值(无论出于何种原因)。
由于您可以复制整个文件,但不能复制目录树,我怀疑您的目录掩码已关闭。要检查这一点,请运行两个复印测试:
- 包含一些文件和/或子目录的目录树(此复制应该会失败);以及
- 将同一棵树压缩成单个存档文件(此复制应该成功)。
复制后,运行ls -l
所有复制的文件。(如果需要,请通过 SSH 进入服务器。)检查服务器是否显示合理的权限:
- 文件应该没问题——它们可能是
rw-------
(所有者读/写),甚至可能rw-r--r--
是rwxr-xr-x
(所有者读/写/执行)。 - 目录至少需要
rwx------
(所有者的读/写/执行权限)。如果缺少写入位,则无法在目录中创建文件;如果缺少执行位,则最终会出现进程无法进入子目录或生成目录列表的情况。
如果缺少目录的执行位,请使用目录掩码指示在分享部分:
# use these for locked-down, user-only permissions
# 0700 is rwx------, 0600 is rw-------
directory mask = 0700
create mask = 0600
# use these for more open, user-only-write, others-read permissions
# 0755 is rwxr-xr-x, 0644 is rw-r--r--
directory mask = 0755
create mask = 0644
你也有可能遇到了麻烦强制用户指示。我不太熟悉它,但当它被使用时,(1)你与服务器通过你的用户进行身份验证,然后(2)分享以强制用户身份执行。如果您以用户身份登录丈夫并访问下面的共享/主页/妻子/wifedebris,您可能遇到了该目录或其父目录的权限问题(/家/妻子)。这些目录可能至少需要是全世界可读/可执行的,以便服务器可以访问它们。