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的魔力到底在哪里?
非常感谢任何提示.
解决方法
从文档中提取:
Create mask : The default value of this parameter removes the group
and other write and execute bits from the UNIX modesDefault:
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行为.