在 Samba 上可以有仅具有写权限, 但无读取权限和没有浏览权限?
我正在尝试解决此访问问题:
在虚拟机中运行的 Windows XP 或 Windows7 机器连接到 Samba 共享。
这台机器必须将文本文件写入共享目录。
(机器可以在本地写入文件,然后将该文件复制到网络,这是可以接受的。)
该机器可能没有权限读取共享目录中的任何其他文件。
一旦文件完全保存,它必须放弃对正在写入/复制的文件的访问权限。
我如何实现这个目标?
答案1
总结:是的,这是可能的。在 Linux 端,授予父目录权限 300。
详细解释:
请注意,对于文件来说,典型的rwx
三元组表示权限r
=读取、w
=写入和x
=执行。
但对于目录来说,这种权限具有不同的含义:r
= 浏览目录,w
= 创建或删除文件,x
= 下降到目录或其下以访问文件或目录。
换句话说,如果您在没有r
权限的情况下创建目录,那么用户将无法浏览它,但是只要事先知道文件名,他就能够访问该目录下的文件或目录(访问意味着根据分配给文件本身的权限读取或写入文件)。
请记住,Linux 权限的工作级别低于 Samba 权限,即使您编辑您的smb.conf
权限以提供明显更广泛的权限,如果 Linux 级别权限比 Samba 权限更严格,它仍会获胜。
例如,此方案允许创建目录,允许创建文件并写入文件,但不能浏览这些文件的列表或从中读取文件:
mkdir dir
chmod 300 dir # 300 = -wx------
请注意,必须在 Linux 端创建此目录 - Windows 客户端可能无法以适当的权限创建它。