我有一个共享文件夹,Samba 在 CentOS 机器上运行。该文件夹名为“proyect”,只有属于 Windows 客户端(磁盘驱动器)同名组的用户才能访问该文件夹。这是在 smb.conf 中的配置方式:
[proyect]
path = /var/samba/proyect
valid users = @proyect
browseable = yes
writeable = yes
guest ok = no
read only = no
这在这一点上效果很好,但是当我需要为“proyect”文件夹内的“proyect”组的每个用户创建一个个人文件夹时,我的问题发生了。我希望属于“proyect”组的每个用户只能读取其他用户的个人文件夹的内容,并且只有该文件夹的所有者可以写入,同时可以在其中创建更多文件夹和继承的文件相同的权限。我创建了一个名为“carlos”的文件夹,该文件夹属于用户 carlos(我将为每个用户执行此操作,他们将无法删除它或更改其名称),并且我使用 chown 命令将他设置为该文件夹的所有者,但仍然无法在文件夹内写入或创建文件。
在 proyect 文件夹内,我将为属于该组的每个用户创建一个文件夹(可能作为 root 用户),他们将无法删除该文件夹或更改其名称。属于 proyect 组的用户只能在其个人文件夹中创建或修改文件,并且不能直接在 proyect 文件夹中创建或修改目录或文件,但只能访问并读取所有文件夹在项目文件夹内。文件夹结构将如下所示:
proyect
---alex
---carlos
---tom
每个用户在 proyect 文件夹中都会有一个带有他的名字的文件夹。他们都不能在项目文件夹中创建文件夹或文件,他们只能在自己的文件夹中执行此操作。用户 carlos 将能够读取 alex 和 tom 文件夹的内容,但无法在其中写入(创建文件或目录)。用户 carlos 只会在 carlos 文件夹中创建文件或文件夹。实际上我在Windows服务器上有这个目录结构,但我需要将它迁移到CentOS。
提前致谢
答案1
我认为proyect
您要连接的组和用户存在于 CentOS 计算机上,并且用户是该组的成员。
首先,确保该proyect
组拥有并具有对以下内容的读写访问权限/var/samba/project
:
chown :proyect /var/samba/project
chmod 775 /var/samba/project
如果将此行添加到 smb.conf:
write list = @proyect
用户将能够写入/var/samba/proyect
.只要默认设置umask
到位,他们就能够创建其他人都可以读取和执行(遍历)但只有他们可以写入的文件夹。
进行更改后请务必重新启动服务:
service smb restart