使用案例

使用案例

使用案例

我是唯一的用户。我有一个具有全盘加密功能的 ubuntu NAS,我正在尝试将我自己的 Windows 计算机备份到该设备上。我想要一个可以启动的 USB 记忆棒,以便将 Windows 驱动器克隆到 NAS,但我不希望任何可能遇到带有共享凭据的 USB 记忆棒的人都可以读取整个备份共享。你能想出更好的解决方案吗?

我所想的可行

我一直在搜索,但找不到我需要的东西,我发现的所有内容都是关于简单地启用对共享的写访问权限,这不是我想要做的。

我想在我的 ubuntu 机器上创建一个 samba 共享,用户可以在其中仅有的写权限。我希望他们能够创建文件,但不能读取它们,也不能列出共享内的文件夹。

这是为了备份的目的。我想要一个可启动的 USB 驱动器,我可以从中启动该驱动器,将获取该计算机中驱动器的磁盘映像并将其保存到 samba 共享,但我不希望该 USB 能够访问所有映像。

如果文件已存在则失败,我很高兴,我将通过使用驱动器 UUID/时间来确保文件名不会冲突。

答案1

我做过类似的事情,唯一的区别是一个用户只能写而不读(甚至列出目录),另一个用户只能读。

/etc/samba/smb.conf

[write-only]
  comment = Write-only access without read
  path = /smbshare
  hosts allow = 172.17.10.10
  hosts deny = 0.0.0.0/0
  read only = no
  write list = smbwrite
  force user = smbwrite
  force group = smbread
  create mask = 0350
  directory mask = 0350
  force create mode = 0350
  force directory mode = 0350

服务器端初始访问权限:

chmod -R 350 /smbshare
chown -R smbwrite:smbread /smbshare

唯一的缺点是,如果您知道确切的文件名,则可以列出它。

以下部分供参考:

[read-only]
  comment = Read-only access
  path = /smbshare
  read only = yes
  hosts allow = 172.17.10.20
  hosts deny = 0.0.0.0/0
  read list = @smbread

/etc/fstab两个客户端上的条目:

smbwrite (172.17.10.10),本地用户“foo”:

//172.17.10.1/write-only      /mnt/write      cifs    user=smbwrite,pass=s3kr1t,uid=foo,vers=3.0 0 0

smbread (172.17.10.20),本地用户“bar”:

//172.17.10.1/read-only /mnt/read cifs user=smbread,pass=s3kr1t,uid=bar,vers=3.0 0 0

答案2

挂载点仅支持禁用写入(只读),但不支持禁用读取。但是,您可以使用文件权限来完成大部分操作。无法阻止用户读取自己的文件,但您可以阻止她读取其他人的文件。

你会需要:

  • 粘滞位,阻止用户删除彼此的文件。
  • 关闭目录的读取位以阻止其他人读取
  • 设置默认权限,关闭文件的读取位以阻止其他人读取它们。

如何

  chmod +t "«the directory»"
  setfacl -m "u::wx,g::wx,o:-" "«the directory»"
  setfacl -m "d:u::-,d:g::-,d:o:-" "«the directory»"

警告

这不会被用户轻易使用,请考虑给予一些额外的权限。或者每个用户一个目录。

我也不认为这是进行备份的方法。设置一个 cron 作业每天进行备份。您可能正在使用备份进行版本控制,请考虑使用版本控制系统。子版本 (svn) 对于必须用户和大多数文件类型来说是一个很好的版本。 Mercurial 对于程序员来说也有好处,并且可以用于其他文件类型,但我不建议将其用于任何不可合并的文件(例如 MS-Office)。

相关内容