Samba SGID 目录和权限委派

Samba SGID 目录和权限委派

我基本上想要做的是能够在 Samba 共享上的 Windows 上为某些目录设置 SGID(setgid)。 提醒:在设置了 SGID 的目录中创建的文件和目录将继承父目录的主要组。

环境

我有一个环境,其中有几十个组需要访问他们所属项目的相关文件。由于项目组的成员和组本身经常发生变化,我希望尽可能将权限设置委托给组长。虽然管理组成员很容易(GOSa 特权委托很好地解决了这个问题),但我在文件权限方面却遇到了困难。

注意:组和其他类似层次结构的数量很大,因此为每个组或层次结构创建不同的共享是不可行的(Windows 中可能的挂载点数量有限,不幸的是使用 UNC 路径也不可能)。

共享中的文件夹如下所示:

/共享根目录
+-- 层次 1
+-- 层次结构 2
| ...
+-- 层次结构 20
+-- 项目
    +-- 项目 A
    | +-- 方向A
    | +-- 文件
    +-- 项目 B
    +-- ...
    +-- 项目 Z

Samba ACL 群组控制

samba () 的优秀功能acl group control允许我允许拥有目录或文件的主要组的成员编辑其权限(与常规的:所有者、根用户和 smb.conf 中的“管理员用户”不同)。

因此,当我有这样的文件夹时(来自的 POSIX ACL getfacl):

# 文件:项目 A
# 所有者:root
# 组:proj-a-adm
# 标志:-s-
用户::rwx
组::rwx
组:域\040用户:rx
组:项目-a:rwx
掩码::rwx
其他:: - -
默认值:用户::rwx
默认:组::rwx
默认值:组:域\040用户:rx
默认:group:proj-a:rwx
默认值:掩码::rwx
默认:其他::---

组内的成员proj-a-adm可以编辑此目录(以及在该目录内创建的所有目录和文件)的权限,而proj-a组内的成员可以自己修改文件,但不能更改这些文件的权限。Domain Users只能读取其中的文件。

问题

当创建新项目时,root用户需要chmod g+s projects/project\ AA在命令行上运行。

在创建新项目后,我可以使用 Windows 文件权限窗口编辑文件和文件夹的权限,但创建新项目文件夹需要在 shell 中运行命令,这相当黑客式的

答案1

A) 编写一个小型 Web 表单和一个小脚本,为一个项目创建一个组和一个目录。

B) 编写一个小型 Windows 批处理文件,通过 ssh 执行相同操作。您可以使用 cygwin 项目中的 ssh 客户端或某些原生 Windows ssh 客户端。

相关内容