Samba 共享仅可供一个用户访问,但应该可供两个用户访问

Samba 共享仅可供一个用户访问,但应该可供两个用户访问

我想使用 samba 为自己和另一个用户共享文件夹。我创建了如下 smb.conf:

[global]
        workgroup = WORKGROUP
        server role = standalone server
        map to guest = never
        usershare allow guests = no 
        hosts allow = 192.168.0.0/16
        hosts deny = 0.0.0.0/0

[movies-library-share]
        comment = share of movies in local network
        path = /media/user1/multimedia/video/movies-library
        browseable = yes
        writeable = yes
        valid users = user1,user2

用户 1 就是我,我可以访问此共享并查看所有内容,我可以写入,因此它工作正常,但用户 2 只能登录,其他所有内容都无法访问,甚至无法读取文件。我的问题是如何让用户 2 可以读取和写入它?我认为这可能与用户 2 访问电影库文件夹的权限有关。我不确定我应该如何分配适当的权限或组。

答案1

您的两个用户默认位于他们自己的组中:user1:user1 和 user2:user2。

这些文件可能归 user1:user1 所有,而“其他”用户无权访问。

解决方案范围从最简单到最强大:

  1. user1通过增加force user = user1份额来假装每个人都在这么做。
  • user2现在拥有所有的权利和权限user1
  • 根据@DeeJayh 的评论,您还需要添加,valid users = user1 user2以便用户 3 和 4 等无法浏览共享。
  1. user1通过添加force group = user1共享,假装每个人都是群组。
  • 与上述相同的警告,但你可以使用以下命令删除组写访问权限chmod g-w ...
  1. 授予每个人读取/执行访问权限。
  • 这包括user2
  • 系统中的每个人都可以访问现在存在的文件,但不是通过 samba。
  • 将来的添加每次都需要运行此操作。
  • chmod -R o+rx /media/user1/multimedia/video/movies-library
  1. 共享组
  • user1创建一个和都是其成员的组user2,并将文件的所有权设置为该组。
  • 将该组添加到两个用户。
  • 将共享的组所有权设置为该组。
  • 确保该目录中的所有内容均可被群组访问。
  • 在目录上设置 GID,以便将来添加的内容可以继承该组。

sudo usermod -a -G media-share user1 sudo usermod -a -G media-share user2 chown -R user1:media-share /media/user1/multimedia/video/movies-library chmod -R g+rx /media/user1/multimedia/video/movies-library chmod -R g+s /media/user1/multimedia/video/movies-library```

  • create mask = 0750如果您通过 samba 添加文件,那么您可以通过添加和directory mask = 0770共享来设置目录和文件掩码以确保组权限。

相关内容