Samba:创建掩码 777 和创建模式 666 不起作用

Samba:创建掩码 777 和创建模式 666 不起作用

从 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 版本。

相关内容