Samba 共享工作时间表

Samba 共享工作时间表

所以我目前使用 Samba 作为时间表服务,以便员工记录他们的工作时间。

我有一个名为“timesheets”的共享,可供“timesheet”组中的所有用户访问。在此共享中,有包含所有员工姓名的文件夹。文件夹内是每个员工的 excel 文件。

我想要实现的目标是让每个人都可以访问自己的文件夹/时间表,但不能访问其他人的文件夹/时间表。除了管理人员之外,他们应该有权访问每个人的工资单文件夹。

每个文件夹的权限都设定为所属用户,文件夹所属组设定为“timesheetmgmt”。现在,管理员(timesheetmgmt 组)可以访问所有文件夹,普通员工(timesheet 组)无法访问除自己所属文件夹之外的其他文件夹。

一切正常,但当用户覆盖他们的时间表文件时,它会重置权限并将组更改为所有者(例如:当更新文件时,employee1:timesheetmgmt 变为 employee1:employee1)。这是有问题的,因为管理员无法再访问这些文件。

我决定使用 samba,因为我的工作场所的工作站既有 Windows 也有 Mac。

我做错了什么?Samba 是用于此目的的正确工具吗?

[timesheets]
  comment = Samba Share for Timesheets
  path = /data/timesheets
  browseable = yes
  guest ok = no
  read only = no
  writeable = yes
  valid users = @timesheets
  create mode = 770
  create mask = 770
  directory mode = 770
  locking = no
  strict locking = no
  vfs objects = fruit streams_xattr
  fruit:aapl = yes
  fruit:encoding = native
  fruit:locking = none
  fruit:metadata = stream
  fruit:resource = file

答案1

要强制创建的文件属于特定组,请使用参数force group

就你的情况而言:

[timesheets]
  comment = Samba Share for Timesheets
  ...
  force group = timesheetmgmt
  ...

此外,为了加强安全性,您可以添加force create modeforce directory mode设置最低级别。

相关内容