Як встановити частку SMB, до якої може отримати доступ будь-хто на Mac OS X El Capitan


10

Як я можу встановити загальну мережу 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

дозвіл на включення / мультимедіа після монтажу

drwxrwxrwx   1 root  wheel  16384 Nov  8 11:04 Multimedia

але це працює

root# cd /Multimedia

tl; dr тільки root може отримати доступ до встановленої спільної доступу

Використання automount

в /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, мене та іншого користувача. Після монтажу незалежно від noowners або nosuidпрапорів я завжди отримував поточного користувача як власника та staffяк групу в точці монтажу. (До речі , у вас є помилка nownessв /etc/auto_master)
techraf

1
@techraf гарний улов! Дякуємо, що підтвердили, що ви отримали інший результат. Чи може дозвіл самої акції мати щось із цим? Я спробую зіткнутися з цим сьогодні ввечері
Ритіс I

1
Привіт @Rytis л, у мене така ж проблема - ти це розробив?
HankCa

@HankCa nope, все ще є це питання :(
Rytis I

Цікаво, чи ви придумали спосіб вирішити це питання?
The Lezy Log

Відповіді:


2

Зробіть акцію SMB придатною для гостя, тоді вона буде встановлена ​​з правильними дозволами.

У мене була точно така ж проблема, і це працює для мене у Високій Сьєррі:

/ і т.д. / auto_nfs:

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

Після монтажу він матиме права drwxrwxrwx, і я можу переглядати його у різних користувачів.


1

Схоже, macOS не дозволяє користувачам монтувати мережевий накопичувач SMB за допомогою спеціальних біт uid / gid. І це дозволяє лише користувачеві, який монтує диск, отримати доступ до накопичувача. Я не знаю, чи піклується 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 . Він надає власні uid / gid та параметри бітів дозволу із -oпрапором; ознайомтеся з bindfs, який монтує диск FUSE та змінює дозвіл. За допомогою bindfs ви можете змонтувати дозволений smb-накопичувач після монтажу smb-диска таким чином, який ви згадали.

Але, я думаю, найкраще кожен користувач має власні спільні накопичувачі.


-1

У мене є запитання, яке могло б відповісти ...
Чому ви не використовуєте "Спільний доступ" у системних налаштуваннях?
Потім вибираєте Обмін файлами, налаштовуєте папки та користувачів і під кнопкою «Параметри» ви знайдете SMB.
Це повинно зробити трюк і набагато легше, ніж з CLI.


Не впевнений, чи охоплює це мій випадок використання. Ідея полягає в тому, що частку потрібно монтувати під час запуску ОС для кожного користувача. Але я спробую це, і звіту назад
Rytis I

ОК, тож "Спільний доступ" ділиться папкою від mac з іншими. Те, що я намагаюся досягти - це навпаки. Я намагаюся монтувати наявну загальну мережу для мого Mac.
Ритіс I

Гаразд, тоді ви хочете поділитися папкою з Linux? Корі, я дивився в неправильному режимі ^ _ ^ Я це робив і в системі Debian. Я можу бути занадто ледачим, але замість CLI я використовував панель уподобань Gnome, щоб активувати спільний доступ у папці.
Марк Аг’є
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.