permissions – Samba默认文件创建掩码计算

前端之家收集整理的这篇文章主要介绍了permissions – Samba默认文件创建掩码计算前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
嗨,我有一个问题,我似乎没有找到相关的答案.情况是我设置samba服务器并尝试创建一个窗口机器的文件文件夹.一切都按预期工作,但是samba从群组和其他文件删除了x位的麻烦.一个简单的示例代码
drwx--x--x.   4 root root  4096 Dec 13 20:01 smb
drwxrwx--x. 2 root amikon 4096 Dec 15 22:17 pokus

[pokus]
path = /smb/pokus
public = no
writable = yes
valid users = @amikon

[root@wserver pokus]# ls -l
drwxr-xr-x. 2 vanek amikon 4096 Dec 21 10:14 dir
-rwxr--r--. 1 vanek amikon    0 Dec 21 10:14 file.txt

从我做过的许多实验中我了解到,从windows samba创建一个条目(文件或目录)时,会从默认掩码和来自windows机器的权限中执行逻辑AND.通过使用create mask和force create mode(以及dirs的另一个设置),这种行为或多或少会有所影响 – 按预期工作完全没有问题.

我发现使用创建掩码755仍然存在缺失0011的问题 – x位仍然从文件删除.唯一的选择是使用强制创建模式755.之后,这些位保持原样或广告它们.

我测试了其他创建掩码选项,似乎每次都删除文件中的0011. 755,777,333 …所以看起来它可能是一些保护机制从组中删除x和其他阻止脚本执行bo除了所有者????

但我的问题是关于上面的确切例子.结果为什么有d755但是-744.失去0011的魔力到底在哪里?

非常感谢任何提示.

解决方法

丢失0011的神奇之处在于它是默认的Samba行为.

从文档中提取

Create mask : The default value of this parameter removes the group
and other write and execute bits from the UNIX modes

Default:
create mask = 0744

这是链接http://www.samba.org/samba/docs/man/manpages-3/smb.conf.5.html

搜索创建掩码(S)

在本文档中,Samba团队没有解释为什么他们选择实现这种默认行为,但对我来说,很容易想到安全机制(如你所提到的).

您可以使用inherit permissions = yes指令使新文件继承其父文件夹权限,但这不会影响x位.
因此,在您的情况下,这将呈现:

-rwxrw-r--. 1 vanek amikon    0 Dec 21 10:14 file.txt

另外,正如您所说,要更改此行为,您必须明确定义自己的掩码.
现在,“创造”和“强制创造”的主要区别在于:

> create mask取消权限(AND掩码)
> force create mode在它之后添加它们(OR掩码)

另外创建掩码不能处理组和其他人的x位.

因此,您可能需要处理这两个指令以达到某些目标.

我们试试一些样品:

1)如果你只想要组和其他人的x位,你将需要组合:

create mask = 0700 #Remove r bit from group and others 
force create mode = 0711 #Add x bit only to group and others

结果:-rwx – x – x 1 kris kris 0 Dec 21 14:20 file.txt

2)如果你想要组和其他的r和x位,删除create mask指令(因为默认值已经是0744)并且只需添加

;create mask = 0700 #remove r bit from group and others (commented)
    force create mode = 0711 #Add x bit only to group and others

结果:-rwxr-xr-x 1 kris kris 0 Dec 21 14:17 file.txt

等等…

希望它能帮助您了解Samba行为.

猜你在找的Linux相关文章