Der*_*ler 6 samba freenas cifs osx-mountain-lion
我在 OSX 和 Windows 客户端的网络上有一个 FreeNAS 服务器。当 OSX 客户端与服务器上的 SMB/CIFS 共享交互时,它们会导致所有其他客户端出现权限问题。
更新:我无法再验证任何答案,因为我们放弃了该项目,但请随时为未来的访问者发布任何帮助。
此行为的详细信息似乎还取决于客户端运行的 OSX 版本。对于这个问题,让我们假设一个运行 10.8.2 的客户端。
当我在 OSX 客户端上安装 CIFS 共享并在其上创建一个新目录时,将使用drwxr-x-rx权限创建该目录。这是不可取的,因为它不允许除我之外的任何人写入该目录。我的组中还有其他用户也应该具有写入权限。即使smb.conf服务器上存在以下设置,也会发生此行为:
[global]
create mask= 0666
directory mask= 0777
[share]
force directory mode= 0775
force create mode= 0660
我的印象是这些设置应该确保目录至少是使用rwxrwxr-x权限创建的。但是,我想,这并不能阻止客户端在创建目录后更改权限。
当我从 Windows 客户端在同一共享上创建文件夹时,新文件夹将具有所需的访问权限 ( rwxrwxrwx),因此我目前假设问题出在 OSX 客户端上。
如果您可以轻松更改您创建的目录的权限,我想这不会是一个问题,但您不能。在 Finder 中打开目录信息时,我收到旧的“您具有自定义访问权限”通知,但无法进行任何更改。

我假设这是因为我们在共享上使用了 Windows ACL,但这只是一个疯狂的猜测。
通过终端更改组的写入权限工作正常,但这对于部署来说是不切实际的,并且期望任何人都这样做是不合理的。
这是完整的smb.conf:
[global]
encrypt passwords = yes
dns proxy = no
strict locking = no
read raw = yes
write raw = yes
oplocks = yes
max xmit = 65535
deadtime = 15
display charset = LOCALE
max log size = 10
syslog only = yes
syslog = 1
load printers = no
printing = bsd
printcap name = /dev/null
disable spoolss = yes
smb passwd file = /var/etc/private/smbpasswd
private dir = /var/etc/private
getwd cache = yes
guest account = nobody
map to guest = Bad Password
obey pam restrictions = Yes
# NOTE: read smb.conf.
directory name cache size = 0
max protocol = SMB2
netbios name = freenas
workgroup = COMPANY
server string = FreeNAS Server
store dos attributes = yes
hostname lookups = yes
security = user
passdb backend = ldapsam:ldap://ldap.company.local
ldap admin dn = cn=admin,dc=company,dc=local
ldap suffix = dc=company,dc=local
ldap user suffix = ou=Users
ldap group suffix = ou=Groups
ldap machine suffix = ou=Computers
ldap ssl = off
ldap replication sleep = 1000
ldap passwd sync = yes
#ldap debug level = 1
#ldap debug threshold = 1
ldapsam:trusted = yes
idmap uid = 10000-39999
idmap gid = 10000-39999
create mask = 0666
directory mask = 0777
client ntlmv2 auth = yes
dos charset = CP437
unix charset = UTF-8
log level = 1
[share]
path = /mnt/zfs0
printable = no
veto files = /.snap/.windows/.zfs/
writeable = yes
browseable = yes
inherit owner = no
inherit permissions = no
vfs objects = zfsacl
guest ok = no
inherit acls = Yes
map archive = No
map readonly = no
nfs4:mode = special
nfs4:acedup = merge
nfs4:chown = yes
hide dot files
force directory mode = 0775
force create mode = 0660
Run Code Online (Sandbox Code Playgroud)
更改您的共享定义以仅包含以下内容:
path = /path/to/folder
browseable = yes
writeable = yes
inherit permissions = yes
Run Code Online (Sandbox Code Playgroud)
现在,直接更改文件夹的权限:
# chown user:group -R /path/to/folder
# chmod 2770 -R /path/to/folder (or 2775 for public read only)
Run Code Online (Sandbox Code Playgroud)
上面的 CHMOD 命令将应用“特殊”权限,这允许放置在该文件夹中的文件夹自动采用父级的权限。要使其生效:
/etc/init.d/samba reload
Run Code Online (Sandbox Code Playgroud)
交换机reload不会重新启动 samba(踢出当前用户),而是重新加载配置文件。
FreeNAS Wiki上也有记录:
如果权限适用于 Windows 用户但不适用于 OS X 用户,请尝试禁用 Unix 扩展并重新启动 CIFS 服务。
| 归档时间: |
|
| 查看次数: |
8539 次 |
| 最近记录: |