从 Windows 创建文件时出现错误。
smbd 版本 4.1.6-Ubuntu
将同一个文件从同一台电脑复制到共享内的同一个文件夹。
从共享定义来看:
共享-secret.conf: 强制创建模式 = 0722
shares-secret.conf:# 创建掩码 = 0666
shares-secret.conf:# 目录掩码 = 0666
结果:-rwxr--r--
shares-secret.conf:# 强制创建模式 = 0722
共享-secret.conf: 创建掩码 = 0666
shares-secret.conf:# 目录掩码 = 0666
结果:-rwxr--r--
shares-secret.conf:# 强制创建模式 = 0722
shares-secret.conf:# 创建掩码 = 0666
共享-secret.conf: 目录掩码 = 0666
结果:-rwxr--r--
因此,单个参数不起作用:组将具有 r/o 访问权限。尝试使用两个参数
CM=0666,DM=0666: -rwxr-xr--
CM=0666,DM=0:-rwxr-xr--
CM=0,DM=0666:-rwxr-xr--
CM=0,DM=0: -rwxr-xr--
CM=7,DM=默认:-rwxr-x---
CM=70,DM=默认:-rwxr-x---
FCM=666,其他=默认:-rw-r--r--
等等等等...所以,正如我所看到的,没有办法为组启用写访问权限?
答案1
解决方案很简单:关闭“遵守 pam 限制”。就这样!
答案2
嗯。我很想看看相关的 PAM 部分。
我遇到过类似的问题,尽管使用了“继承权限”、创建掩码和强制创建模式选项,我还是无法创建具有组(或世界)可写权限的文件。问题出在客户端,即 OSX 机器上。OSX 使用的 umask 值为 0022。
改变这一点非常困难。
解决方案是输入umask 0002
,/etc/launchd-user.conf
然后重新启动,这样 launchd 就会重新读取其启动脚本。Apple 的文档位于https://support.apple.com/en-us/HT201684声明这适用于 10.9 及以下版本,但我认为它只适用于 10.4.10 及以下版本,此时您必须使用defaults write -g NSUmask 2
适用于 10.4 和 10.3 的大部分版本的版本。此外,NSUmask 是通常八进制代码的复杂的十进制表示。(警告警告)
终端是它自己的环境,因此必须在/etc/profile
或中单独设置它的 umask ~/.profile
。
无论如何,obey pam restrictions
这个问题对我来说没有影响。设置是 FreeBSD 10.3、samba 4.3.11 和各种 OSX 版本。