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

时间:2011-10-08 20:16:40

标签: macos cocoa bash terminal

我正在尝试从终端启用帐户共享。我无法弄清楚如何做到这一点。

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

我需要效果相同,只需转到系统偏好设置→共享→文件共享→启用任何帐户,以便使用SMB进行共享。

enter image description here


我已经拥有的内容:

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

我已尝试过的内容:

  • 我已经尝试扫描系统中最后修改过的文件,以便在Samba配置文件中找到一些信息,但它没有帮助。

我不需要的内容:

  • 我不能用SSH做到这一点。文件夹需要才能通过SMB共享。

3 个答案:

答案 0 :(得分:12)

这适用于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)的实施。但请注意,它仍然使用相同的共享点机制来创建共享,目录服务负责它。此外,它仍然可以在帐户上启用SMB的方式相同!

答案 1 :(得分: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连接!

答案 2 :(得分:1)

  

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

     

sudo默认写   /Library/Preferences/SystemConfiguration/com.apple.smb.server.plist   EnabledServices -array disk

这可能是另一种方式。

要再次禁用它, - 卸载它。

  

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