在我们的家庭网络中,我们有 Ubuntu 10.4 amd64 Desktop 作为文件服务器,还有几台 WinXP 笔记本电脑。Ubuntu 未设置为域服务器,用户名和密码在所有机器上手动同步。
为 Windows 客户端设置共享空间的正确方法是什么,以便组父母的成员(且只有父母)都对其内容具有读取和写入权限?
我以为我已经完成了这件事,但当爸爸在 \server\share-parents\ 中创建或写入文件时,妈妈对该文件的写入权限将被撤销,反之亦然。当上述文件是家庭开支电子表格并且家庭装修费用是如此接近浪费今年的预算,并且信用卡付款即将到期...我是否需要补充一点,去年以递归方式将 chown'ing 设置为 :parents 和 chmod'ing g+w 的临时解决办法不再能让火上浇油?
smb.conf 共享部分:
[global]
# other stuff edited out
security = user
[share-parents]
comment = parents shared files
available = yes
browseable = yes
public = yes
valid users = mom, dad
writable = yes
path=/home/shared
follow symlinks = yes
答案1
这是一个权限问题,您可以通过以下方式解决:
664
1)告诉 Samba对共享中的所有文件 强制某些特定权限(例如):相关解决方案在此处讨论:http://www.linuxquestions.org/questions/linux-newbie-8/samba-share-permissions-57589/
归结为:假设您希望所有内容对于“父母”都是可读写的,而对于其他所有人来说都是只读的,请在[parents]
共享配置中添加以下几行:
force create mode = 0664
force security mode = 0664
force directory mode = 0775
1
在“强制*模式”中设置的每个位都将由 SAMBA 在文件上设置,无论 Windows 客户端请求什么。
2)使用security mask
设置来禁止清除组写入位(1
Windows 客户端可以操纵“安全掩码”中设置的位):
security mask = 757
因此,一旦您从 Linux 设置了文件g+w
,就无法从 Windows 将其改回。
相关参数的更详细解释见: http://cri.ch/linux/docs/sk0002.html
无论选择哪种解决方法,您可能还希望强制共享中的所有文件属于 UNIX 组parents
:
force group = parents
两个选项中的任何一个都应该可行;它们兼容,因此您也可以选择同时实现这两个选项。