Как включить общий доступ к SMB для учетной записи пользователя с терминала в Mac OS X?

Я пытаюсь включить Общий доступ к аккаунту из терминала. Я не могу понять, как это сделать.

Это будет использоваться из приложения, которое я сейчас программирую. Приложение создает скрытого пользователя, затем следует включить совместное использование SMB для этого пользователя. Позже мне нужно подключиться к этому ресурсу через другой сервер с помощью SMB.

Мне нужен тот же эффект, что и в системных настройках → Обмен файлами → Общий доступ к файлам → включить любую учетную запись для совместного использования с помощью SMB.

enter image description here


Что у меня уже есть:

  • Я знаю, как создать скрытого пользователя
  • Я уже знаю, как создавать отдельные общие папки, но не использовать общий доступ к учетной записи.

Что я уже пробовал:

  • Я уже пытался отсканировать систему для последних измененных файлов, чтобы найти некоторую информацию в конфигурационных файлах Samba, но это не помогло.

Что мне не нужно:

  • Я не могу сделать это с помощью SSH. Папки должны использоваться совместно с SMB.

Ответы

Ответ 1

ЭТО РАБОТЫ ДЛЯ OS X 10.5, 10.6, 10.7

Сначала введите это в терминал

pwpolicy -u SomeUser -sethashtypes SMB-NT on

SomeUser также может быть скрыт, это не имеет значения. Это дает такой же эффект, как включение этого флажка, как показано на рисунке выше.

После этого:

dscl . -passwd /Users/SomeUser "UserPassword"

Это дает тот же эффект, что и включение его из системных настроек, когда он запрашивает пароль. Это то же самое, что и заполнение этого пароля.

Если вы хотите отключить SMB в этой учетной записи (SomeUser можно снова скрыть):

pwpolicy -u SomeUser -sethashtypes SMB-NT off

P.S. В Mac OS X Lion они изменили свою реализацию для SMB (SMBX). Но имейте в виду, что он по-прежнему использует один и тот же механизм Share Points для создания общего ресурса, и за это отвечает Directory Service. Также он по-прежнему работает таким же образом, что и SMB на счету!

Ответ 2

Я пробовал ответить выше в 10.7, и я был рад видеть, что после включения SMB-NT настройка появилась эффективно на экране "Параметры совместного доступа".

Проблема заключается в том, что если этот пользователь включен с помощью этого метода, я не смог подключиться к Windows. Поэтому мне пришлось попробовать другое эзотерическое решение, которое я нашел раньше, и я не хотел попробовать:

  • О смене файла /var/db/dslocal/nodes/Default/users/.plist, переупорядочивающего значения массива authentication_authority.

Вот полное объяснение: https://discussions.apple.com/thread/3211072?start=0&tstart=0

После внесения этих изменений пользовательский smb-параметр снова отключился (возможно, потому, что я использовал старый файл .plist), но я смог эффективно включить его и подключиться к Windows!

Ответ 3

sudo launchctl load -w /System/Library/LaunchDaemons/com.apple.smbd.plist

sudo defaults write /Library/Preferences/SystemConfiguration/com.apple.smb.server.plist EnabledServices -array disk

Это может быть другой способ.

И чтобы отключить его снова, - выгрузите его.

sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.smbd.plist