所以我目前使用 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 mode
或force directory mode
设置最低级别。