我有一个Linux服务器上的目录,我的用户拥有所有的文件,只有一个特定的目录是世界可写的。 所有其他目录对于来宾都是只读的。 这个想法是,任何人都应该能够在世界可写目录中做任何他们想要的东西,但是有一个问题:之后我不能用我自己的UNIX用户来改变来宾创build的文件。
我只是不知道什么样的UNIX权限和/或samba设置将允许我在类似configuration的Windows共享中具有相同types的行为。 在Windows机器上,我可以在共享上设置世界可写目录,以便拥有“Everyone”的写入权限,然后每个人都可以在本地目录中执行任何他们想要的任何操作,或者通过访问共享作为来宾。 我如何在Linux服务器上获得相同的function? 目前由guest虚拟机编写的文件只能由UNIX用户nobody和root来更改。
这是我的smb.conf:
[全球] unix charset = iso8859-15 interfaces = 192.168.0.1 只绑定接口=是 套接字地址= 192.168.0.1 名称parsing顺序=主机 只读=否 最大打开文件= 32768 csc policy =禁用 加载打印机=否 syslog = 0 map to guest = Bad user#这太可怕了:) [家庭] browseable = no 创build掩码= 0600 安全掩码= 0600 目录掩码= 0700 目录安全掩码= 0700 [problem_share] path= /存储 public = yes 创build掩码= 0644 安全掩码= 0644 目录掩码= 0755 目录安全掩码= 0755 隐藏点文件=不
我已经尝试使用默认的ACL,但似乎没有帮助。 这些在其他许多情况下都非常有帮助,但是桑巴拥有如此多的权限设置,似乎干涉了某些方面。
grs是正确的关于文件。
[problem_share]
path= /存储
public = yes
创build掩码= 0666#(每个人:读取+写入)
安全掩码= 0666#(每个人:读取+写入)
目录掩码= 0777#(每个人:列表+修改+遍历)
目录安全掩码= 0777#(大家:列表+修改+遍历)
隐藏点文件=不
你可能想要提高你对传统Unix权限的理解。
你需要修复[problem_share] create mask = 0666 。 更多信息: 在这里 。
我意识到,我最初的问题提出的很差,我应该得到这些新手答案。 但是,我终于解决了这个问题:
我将/ storage中的所有目录都归我自己的UNIX用户所有,只有其他用户拥有只读权限。 然后,我使用FUSE bindfs“mirror”选项来挂载/存储/上传。 确切的命令行是“bindfs –mirror = @ staff,@ users,nobody –create-for-user = myuser / storage / upload / storage / upload”。 现在,用户nobody,组员和用户中的用户将/ storage / upload中的文件视为他们自己的文件,并且可以按照他们认为合适的方式进行修改。 但实际上,所有文件都是由我自己的UNIX用户拥有的,如果我将该文件移动到该目录之外,则其他任何用户都不能再对其进行修改,因此对于它们而言,这些文件变为只读。 这是一个非常干净的解决scheme国际海事组织,并没有绑在桑巴。