如何挂载Mac OS X El Capitan上任何人都可以访问的SMB共享


10

如何安装任何人都可以访问的SMB网络共享?这是我尝试过的:

使用安装命令

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

tl; dr只有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

作品!

tl; dr仅导致自动挂载和root用户的用户有权访问共享


验证您的第一种方法,没有发现任何问题。我可以与root,我和其他用户一起安装和访问共享。无论使用noownersnosuid标志进行挂载后,我总是staff在挂载点上将当前用户作为所有者和组。(顺便说一句,你已经有了一个错字nowness/etc/auto_master
techraf

1
@techraf好抓!感谢您的验证,您得到了不同的结果非常值得。共享本身的许可可能与此有关吗?我今晚会尝试弄乱
Rytis I 2015年

1
嗨@Rytis l,我遇到了同样的问题-您解决了吗?
HankCa '16

@HankCa nope,仍然有这个问题:(
Rytis我

我想知道您是否找到解决此问题的方法?
The Lazy Log

Answers:


2

使SMB共享可作为来宾进行挂载,然后使用正确的权限进行挂载。

我遇到了完全相同的问题,在High Sierra中这对我有用:

/ etc / auto_nfs:

Public -fstype=smbfs,soft,noowners,noatime,nosuid smb://guest@192.168.1.1/Public

挂载后,它将具有drwxrwxrwx权限,并且我可以从其他用户浏览它。


1

似乎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
  1. 共享文件/文件夹的uid / gid始终为 who-mount:whose-group
  2. 共享服务器上的权限位相同 a-server
  3. 服务器将who-mount视为known-user:known-group (这known-group是的默认组know-user

一种建议是将Fuse用于macOS。它提供带有-o标志的自定义uid / gid和权限位选项;找出安装FUSE驱动器并更改许可权的bindfs。使用bindfs,您可以按照上述方式安装smb驱动器后再安装权限获取的smb驱动器。

但是,我认为,最好的办法是每个用户都有自己的共享驱动器。


-1

我有一个可能是答案的问题...
为什么不在系统偏好设置中使用“共享”?
然后,选择“文件共享”,设置文件夹和用户,并在“选项”按钮下找到SMB。
与CLI相比,这应该可以解决问题,并且容易得多。


不知道这是否涵盖了我的用例。这个想法是,每个用户都必须在操作系统启动时挂载共享。但我会尝试一下,并报告
里蒂斯我

单击确定,以便“共享”从Mac与其他人共享一个文件夹。我正在尝试的是取得相反的结果。我正在尝试将现有的网络共享安装到我的Mac。
Rytis I

好吧,那您要从Linux共享一个文件夹吗?抱歉,我输入的方向错误^ _ ^我也在Debian系统上执行了该操作。我可能太懒了,但是为了激活文件夹上的共享,我使用了Gnome首选项面板来代替CLI。
Marc Augier
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.