如何安装任何人都可以访问的 SMB 网络共享?以下是我尝试的方法:
使用 mount 命令
me$ sudo mkdir /Multimedia
me$ sudo chmod 777 /Multimedia
me$ sudo mount -t smbfs -o nosuid,-d=777 //user:password@qnap/Multimedia /Multimedia/
然后
me$ cd /Multimedia
-bash: cd: /Multimedia: Permission denied
安装后对 /Multimedia 的权限
drwxrwxrwx 1 root wheel 16384 Nov 8 11:04 Multimedia
但这有效
root# cd /Multimedia
总结只有 root 可以访问已挂载的共享
使用自动挂载
在/etc/auto_master
#
# Automounter master map
#
+auto_master # Use directory service
/net -hosts -nobrowse,hidefromfinder,nosuid
/home auto_home -nobrowse,hidefromfinder
/Network/Servers -fstab
/- -static
### SMB shares
/- /etc/automounts/smb -nosuid,noowners
在/etc/automounts/smb
/Multimedia -fstype=smbfs,soft,noowners,noatime,nosuid ://user:password@qnap/Multimedia
然后
me$ sudo automount -vc
automount: /net updated
automount: /home updated
automount: /Multimedia mounted
automount: no unmount
在那之后
me$ cd /Multimedia
me$ ls -ld /Multimedia/
drwx------ 1 me staff 16384 Nov 8 11:04 /Multimedia/
有效!但不幸的是其他用户无法访问
otheruser$ cd /Multimedia
-bash: cd: /Multimedia: Permission denied
但如果我
me$ umount /Multimedia
进而
otheruser$ cd /Multimedia
otheruser$ ls -ld /Multimedia
drwx------ 2 otheruser staff 1 Nov 8 15:17 /Multimedia
有用!但是
me$ cd /Multimedia
-bash: cd: /Multimedia: Permission denied
但是
root# cd /Multimedia
作品!
总结只有导致自动挂载的用户和 root 才有权访问共享
答案1
使 SMB 共享可以作为客户机安装,然后它将以正确的权限安装。
我遇到了完全相同的问题,并且在 High Sierra 中这对我有用:
在 /etc/auto_nfs 中:
Public -fstype=smbfs,soft,noowners,noatime,nosuid smb://[email protected]/Public
挂载后,它将具有 drwxrwxrwx 权限,我可以从不同的用户那里浏览它。
答案2
似乎 macOS 不允许用户使用自定义 uid/gid 位挂载 SMB 网络驱动器。并且它只允许挂载驱动器的用户访问该驱动器。我不知道 Apple 是否关心安全性,或者这只是一个错误。但不幸的是,多年来一直如此。我在 macOS 到 macOS 的共享驱动器上测试了几种情况:
known-user@a-server:~% sudo ls -l
-rw-r----- 1 known-user known-group 0 Jun 13 10:50 a-file
-rw-r----- 1 known-user unknown-group 0 Jun 13 10:50 b-file
-rw-r----- 1 unknown-user known-group 0 Jun 13 10:50 c-file
-rw-r----- 1 unknown-user unknown-group 0 Jun 13 10:50 b-file
who-mount@my-desktop:~% sudo ls -l
-rw-r----- 1 who-mount whose-group 0 Jun 13 10:50 a-file
-rw-r----- 1 who-mount whose-group 0 Jun 13 10:50 b-file
-rw-r----- 1 who-mount whose-group 0 Jun 13 10:50 c-file
-rw-r----- 1 who-mount whose-group 0 Jun 13 10:50 d-file
who-mount@my-desktop:~% cat a-file
who-mount@my-desktop:~% echo hello > a-file
who-mount@my-desktop:~% cat b-file
who-mount@my-desktop:~% echo hello > b-file
who-mount@my-desktop:~% cat c-file
who-mount@my-desktop:~% echo hello > c-file
zsh: permission denied: c-file
who-mount@my-desktop:~% cat d-file
cat: d-file: Permission denied
who-mount@my-desktop:~% echo hello > d-file
zsh: permission denied: d-file
- 共享文件/文件夹的 uid/gid 始终
who-mount:whose-group
- 共享服务器上的权限位相同
a-server
- 服务器将其
who-mount
视为known-user:known-group
(此处known-group
为默认组know-user
)
一个建议是使用适用于 macOS 的 Fuse。它提供了带有标志的自定义 uid/gid 和权限位选项-o
;请查看绑定文件系统它会挂载 FUSE 驱动器并更改权限。使用 bindfs,您可以在按照您提到的方式挂载 smb 驱动器后挂载获取权限的 smb 驱动器。
但是,我认为最好的是每个用户都有自己的共享驱动器。
答案3
我有一个问题可以回答...
为什么不使用系统偏好设置中的“共享”?
然后选择文件共享,设置文件夹和用户,在“选项”按钮下,您将找到 SMB。
这应该可以解决问题,而且比使用 CLI 容易得多。