这是相关smb.conf
部分:
[someshare]
path = /somewhere
read only = No
writeable = Yes
guest ok = Yes
create mask = 0777
security mask = 0777
directory mask = 0777
force create mode = 0777
directory security mask = 0777
假设 user1 在该共享上创建一个目录。它的权限将是:drwxr-xr-x
并且所有者将是 user1。
虽然 user2 可以访问 user1 创建的目录,但他在尝试在该目录上创建文件时收到权限错误。
对我来说,user1 创建的目录的权限不是 smb.conf 中指定的 777 似乎很奇怪...
编辑:当权限被拒绝时,我忘了提到客户端日志中弹出的一个奇怪错误:
[2009/06/24 03:02:18, 0] smbd/trans2.c:unix_filetype(1130)
unix_filetype: unknown filetype 0
我错过了什么?
你错过了:
此外,您真的想使用 0666 强制创建掩码。可能没有充分的理由强制执行位。
将权限更改为 777 总是让我感到紧张,即使这是一个家庭项目。相反,将所有 samba 用户添加到一个组(如 samba_user),然后在 smb.conf 中添加以下行:
当然,您还必须 chgrp 所有必要的文件夹。然后您可以设置更细粒度的权限,允许人们在其他人的文件夹中做他们的事情,并且您的服务器不会变成对所有人免费的。有人想要一个私人文件夹吗?只需将该文件夹的组从 samba_user 更改回用户的私有组。
我猜这是 smb.conf 中的权限与用户配置文件中指定的权限一起用作掩码,这两者将合并在一起而不是 ored 所以如果 samba 说 777 并且用户的掩码是 755 那么你'结果会得到755。
您看到的权限被拒绝消息只是同意您看到的针对文件记录的权限。您看到的额外错误消息我不确定。