我想使用 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 所有,而“其他”用户无权访问。
解决方案范围从最简单到最强大:
user1
通过增加force user = user1
份额来假装每个人都在这么做。
user2
现在拥有所有的权利和权限user1
。- 根据@DeeJayh 的评论,您还需要添加,
valid users = user1 user2
以便用户 3 和 4 等无法浏览共享。
user1
通过添加force group = user1
共享,假装每个人都是群组。
- 与上述相同的警告,但你可以使用以下命令删除组写访问权限
chmod g-w ...
- 授予每个人读取/执行访问权限。
- 这包括
user2
- 系统中的每个人都可以访问现在存在的文件,但不是通过 samba。
- 将来的添加每次都需要运行此操作。
chmod -R o+rx /media/user1/multimedia/video/movies-library
- 共享组
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
共享来设置目录和文件掩码以确保组权限。