如何在Mac OS X终端中启用用户帐户SMB共享?

17

我正在尝试从终端启用账户共享,但我无法想出如何做到这一点。

这将在我目前正在编写的应用程序内部使用。该应用程序创建一个隐藏用户,然后应启用该用户的SMB共享功能。稍后,我需要通过另一台使用SMB的服务器连接到此共享。

我需要与前往“系统首选项 → 共享 → 文件共享”并使用SMB启用任何帐户的共享相同的效果。

输入图像描述


我已经拥有的内容:

  • 我知道如何创建隐藏用户
  • 我已经知道如何创建独立的共享文件夹,但不是账户共享。

我已经尝试过的:

  • 我已经尝试扫描最近修改的文件来查找Samba配置文件中的一些信息,但这没有帮助。

我不需要的内容:

  • 我不能通过SSH完成此操作。文件夹需要通过SMB共享。

你可以尝试使用以下命令启用它:sudo launchctl start com.apple.smbfs_load_kext,但目前我不知道更多的细节。请问你的确切使用情况是什么? - slhck
我需要分享一些文件夹。之后需要在我创建的特定用户上启用SMB共享。因此,我需要一种从终端启用向特定用户共享的方法。就像您可以从“系统偏好设置->共享”中执行的操作一样。 - User1234
1
@melee 我需要在OS X 10.5、10.6、10.7上完成它。但如果你有任何想法如何在它们中的任何一个上完成,那就太好了。谢谢。 - User1234
@User1234,SMBD在10.7中被完全重写了。提前告知一下。 - Nic
@melee 是的,我知道。但它仍然使用目录服务来处理共享。你有想法如何做到这一点吗?或者你有想法如何在10.6上实现这个功能吗? - User1234
3个回答

13

以下方法适用于 OS X 10.5、10.6 和 10.7

打开终端并输入以下命令:

pwpolicy -u SomeUser -sethashtypes SMB-NT on
< p > SomeUser也可以隐藏,这不重要。这会产生与启用上面图片中所示复选框相同的效果。

然后:

dscl . -passwd /Users/SomeUser "UserPassword"

这会产生相同的效果,就像从系统偏好设置启用它时要求密码一样。就像填写那个密码一样。

如果你想在该帐户上禁用SMB(SomeUser可以再次隐藏):

pwpolicy -u SomeUser -sethashtypes SMB-NT off

顺便说一下,在Mac OS X Lion中,他们改变了SMB(SMBX)的实现方式。但请注意,它仍然使用相同的共享点机制来创建共享,并且目录服务负责此操作。此外,启用帐户上的SMB的方式仍然保持不变!


太好了!感谢你更新这个 - 在试图弄清楚这个问题后,我也很好奇。 - Nic

1
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

1

我在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连接!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接