虽然我可以连接到 Samba-Share 并读取所有共享文件,但我无法在 Mac 上修改/删除该共享的文件。
我在这里发现了一个非常相似的问题:Samba 文件权限:Linux 服务器、Mac 客户端。我尝试了接受的答案中的解决方案,即向中添加参数smb.conf
,但不幸的是,它对我不起作用。
我的smb.conf
:
[global]
nt acl support = yes
acl map full control = no
security = user
passdb backend = tdbsam
unix charset = utf-8
dos charset = cp932
[private-share]
path = /home/pi/music
valid users = @smbgrp
我已将服务器文件夹的访问权限授予sambauser
和smbgrp
:
sudo chmod -R 0770 /home/pi/music
sudo chown -R sambauser:smbgrp music/
验证一下:
$ ls -l /home/pi/
total 4
drwxrwx--- 6 sambauser smbgrp 4096 Feb 2 10:19 music
当我切换到 时sambauser
,我可以随意删除文件。尽管当我切换到我的 Mac 并使用cmd+K
Finder 中的 功能时sambauser
,我可以连接到 Samba-Share 并读取所有共享文件,但我无法在 Mac 上创建/修改/删除该共享中的文件。
我也可以从命令行挂载它,但挂载完成后,文件夹权限似乎发生了变化:
$ mkdir -p /tmp/samba-share
$ cd /tmp
$ ls -l
drwxr-xr-x 2 hans wheel 64 2 Feb 14:47 samba-share
$ sudo mount_smbfs //sambauser:password@k3smaster/private-share /tmp/samba-share
$ ls -l
ls: samba-share: Permission denied
$ sudo ls -l
drwx------ 1 root wheel 16384 2 Feb 11:19 samba-share
当我尝试删除文件时,权限被拒绝:
$ sudo ls -l samba-share/non-pro/Dan
total 63488
-rwx------ 1 root wheel 5948277 1 Feb 17:05 01-Track-01.mp3
$ sudo rm samba-share/non-pro/Dan/01-Track-01.mp3
override rwx------ root/wheel arch for samba-share/non-pro/Dan/01-Track-01.mp3? y
rm: samba-share/non-pro/Dan/01-Track-01.mp3: Permission denied
创建文件也是如此:
$ sudo touch samba-share/non-pro/Dan/foo.bar
touch: samba-share/non-pro/Dan/foo.bar: Permission denied
在Windows客户端上测试:
$ net use z: \\k3smaster\private-share
Windows prompts for username and password
此后,文件夹和文件可访问但为只读。与 Mac 上相同。
答案1
添加这两个参数read only = no
似乎writable = yes
可以解决问题。
整体smb.conf
[global]
security = user
passdb backend = tdbsam
unix charset = utf-8
dos charset = cp932
map to guest = Bad Password
[private-share]
path = /home/pi/music
valid users = @smbgrp
read only = no
writable = yes
在 Mac 客户端上,挂载共享的权限不再root
属于组wheel
。相反,所有者现在是logged in Mac user
组staff
:
$ ls -l /Volumes/samba-share
drwx------ 1 hans staff 16384 1 Feb 18:05 non-pro
我可以创建文件夹和文件,也可以删除和重命名文件夹和文件。所以最后它正常工作了。