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行为.
从文档中提取:
这是链接: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掩码) 另外创建掩码不能处理组和其他人的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行为. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |