Jak zamontować udział SMB, do którego może uzyskać dostęp każdy w systemie Mac OS X El Capitan

10

Jak zamontować udział sieciowy SMB, do którego każdy może uzyskać dostęp? Oto, co próbowałem:

Za pomocą polecenia mount

me$ sudo mkdir /Multimedia
me$ sudo chmod 777 /Multimedia
me$ sudo mount -t smbfs -o nosuid,-d=777 //user:password@qnap/Multimedia /Multimedia/

następnie

me$ cd /Multimedia      
-bash: cd: /Multimedia: Permission denied

zezwolenie na / Multimedia po montażu

drwxrwxrwx   1 root  wheel  16384 Nov  8 11:04 Multimedia

ale to działa

root# cd /Multimedia

tl; dr tylko root może uzyskać dostęp do zamontowanego udziału

Korzystanie z automount

w /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

w /etc/automounts/smb

/Multimedia        -fstype=smbfs,soft,noowners,noatime,nosuid ://user:password@qnap/Multimedia

następnie

me$ sudo automount -vc
automount: /net updated
automount: /home updated
automount: /Multimedia mounted
automount: no unmount

po tym

me$ cd /Multimedia
me$ ls -ld /Multimedia/
drwx------  1 me  staff  16384 Nov  8 11:04 /Multimedia/

Pracuje! Ale niestety inni użytkownicy nie mają dostępu

otheruser$ cd /Multimedia 
-bash: cd: /Multimedia: Permission denied

Ale jeśli ja

me$ umount /Multimedia

i wtedy

otheruser$ cd /Multimedia
otheruser$ ls -ld /Multimedia 
drwx------  2 otheruser  staff  1 Nov  8 15:17 /Multimedia

Pracuje! Ale

me$ cd /Multimedia
-bash: cd: /Multimedia: Permission denied

i jeszcze

root# cd /Multimedia

Pracuje!

tl; dr tylko użytkownik, który spowodował automount i root, ma dostęp do udziału

Rytis I
źródło
Zweryfikowano pierwszą metodę i nie znaleziono problemu. Mogę zamontować i uzyskać dostęp do udziału z rootem, mną i innym użytkownikiem. Po zamontowaniu niezależnie od tego noowners czy nosuidflagi ja zawsze dostaje bieżącego użytkownika jako właściciela i staffjako grupy na punkt montowania. (btw masz literówkę nownessw /etc/auto_master)
techraf
1
@techraf good catch! Dzięki za weryfikację, to bardzo proste, że masz inny wynik. Czy pozwolenie samego udziału może mieć z tym coś wspólnego? Spróbuję dziś z tym zadzierać
Rytis I
1
Cześć @ Rytis, mam ten sam problem - czy udało ci się to rozwiązać?
HankCa
@HankCa nie, nadal mam ten problem :(
Rytis I
Zastanawiam się, czy wymyśliłeś sposób rozwiązania tego problemu?
The Lazy Log,

Odpowiedzi:

2

Udostępnij udział SMB jako gościa, a następnie zostanie on zamontowany z odpowiednimi uprawnieniami.

Miałem dokładnie ten sam problem i to działa dla mnie w High Sierra:

/ etc / auto_nfs:

Public -fstype=smbfs,soft,noowners,noatime,nosuid smb://[email protected]/Public

A po zamontowaniu będzie miał prawa drwxrwxrwx i będę mógł przeglądać go od różnych użytkowników.

Tommi Uimonen
źródło
1

Wygląda na to, że macOS nie pozwala użytkownikom montować dysku sieciowego SMB za pomocą niestandardowych bitów UID / GID. Pozwala to tylko użytkownikowi, który zamontuje dysk, na dostęp do dysku. Nie wiem, czy Apple dba o bezpieczeństwo, czy to tylko błąd. Ale niestety trwa to od lat. Testowałem kilka przypadków na wspólnym dysku macOS-to-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 udostępnionych plików / folderów są zawsze who-mount:whose-group
  2. Bity uprawnień są takie same na współużytkowanym serwerze a-server
  3. Serwer traktuje who-mountjako known-user:known-group (tutaj known-groupjest domyślna grupa know-user)

Jedną z sugestii jest użycie Fuse dla macOS . Zapewnia niestandardowe opcje identyfikatora UID / GID i uprawnień z -oflagą; sprawdź bindfs, który montuje napęd FUSE i zmienia uprawnienia. Dzięki bindfs możesz zamontować dysk smb pobrany po zezwoleniu po zamontowaniu dysku smb w sposób, o którym wspomniałeś.

Ale myślę, że najlepsze jest to, że każdy użytkownik ma własne współdzielone dyski.

Daehyun You
źródło
-1

Mam pytanie, które może być odpowiedzią ...
Dlaczego nie używasz „Udostępniania” w preferencjach systemu?
Następnie wybierz Udostępnianie plików, skonfiguruj foldery i użytkowników, a pod przyciskiem „Opcje” znajdziesz SMB.
To powinno załatwić sprawę i znacznie łatwiej niż w przypadku CLI.

Marc Augier
źródło
Nie jestem pewien, czy dotyczy to mojego przypadku użycia. Chodzi o to, że udział musi być zamontowany podczas uruchamiania systemu operacyjnego dla każdego użytkownika. Ale spróbuję i
zdam
OK, więc „Udostępnianie” udostępnia folder z komputera Mac innym osobom. To, co próbuję osiągnąć, jest odwrotne. Próbuję zamontować istniejący udział sieciowy na moim komputerze Mac.
Rytis I
W porządku, a następnie chcesz udostępnić folder z systemu Linux? Qorry, szukałem niewłaściwego kierunku ^ _ ^ Zrobiłem to również w systemie Debian. Być może jestem zbyt leniwy, ale zamiast CLI użyłem również panelu preferencji Gnome, aby aktywować udostępnianie w folderze.
Marc Augier,