原文网址:http://gcell.blog.163.com/blog/static/52666594201501084530277/

1、首先,在系统偏好设置的共享设置中,关掉局域网文件共享(去掉打勾),然后打开终端,运行:

//安装samba

brew install samba

//禁用 netbiosd
sudo launchctl stop com.apple.netbiosd
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.netbiosd.plist

2、进入任意目录新建 org.samba.nmbd.plist 和 org.samba.smbd.plist 两个plist文件,
nmbd的文件内容为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>org.samba.nmbd</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/Cellar/samba/3.6.23/sbin/nmbd</string>
        <string>-D</string>
    </array>
    <key>OnDemand</key>
    <false/>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>ServiceDescription</key>
    <string>netbios</string>
</dict>
</plist>

smbd的文件内容为:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>org.samba.smbd</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/Cellar/samba/3.6.23/sbin/smbd</string>
        <string>-D</string>
    </array>
    <key>OnDemand</key>
    <false/>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
    <key>ServiceDescription</key>
    <string>samba</string>
</dict>
</plist>

请注意红色加粗字体部分,可能要修改为你对应的samba版本号。

3、提前准备好smb.conf配置文件,此例为匿名访问可读写(测试安卓手机、win7等均可正常访问)

[global]
netbios name = iMac
display charset = UTF-8
server string = Samba
unix charset = UTF-8
workgroup = WORKGROUP
browseable = yes
security = user
passdb backend = tdbsam
guest account = nobody
guest ok = yes
invalid users = root
load printers = no
printable = no
map to guest = Bad User
max protocol = SMB2
min receivefile size = 16384
os level = 20
socket options = TCP_NODELAY IPTOS_LOWDELAY
syslog = 2
log file = /var/log/samba.log.%m
use sendfile = yes
writeable = yes

[mac]
path = /Users/gcell/Movies/movies
read only = no
guest ok = yes
create mask = 777

browseable = yes
directory mask = 777

4、终端下cd进入plist文件的保存目录,本例中是~/samba
运行:

sudo ln -sfv ~/samba/*.plist /Library/LaunchAgents
sudo chmod a+rx ~/samba/*.plist
sudo launchctl load -w /Library/LaunchAgents/org.samba.nmbd.plist
sudo launchctl load -w /Library/LaunchAgents/org.samba.smbd.plist

自己操作时,显示Path had bad permissions错误,解决方法:

sudo chown root xxxx.plist

至此,samba正常运作,局域网中应可看到主机名,并可以正常打开访问(匿名可读写)。

补充:

1. mac终端安装node时候,显示“-bash: brew: command not found”,怎么解决?

没安装 Homebrew,解决方法:

bash 下执行 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Homebrew是啥东东?apt-get和yum知道吧?Homebrew就相当于MacOS中的yum。

2.

(1) mac电脑samba的位置

macs-Mac-mini:3.6.25 xxx$ pwd

/usr/local/Cellar/samba/3.6.25/

(2) smb.conf的位置

macs-Mac-mini:etc xxx$ ls

smb.conf smb.conf.bk

macs-Mac-mini:etc xxx$ pwd

/usr/local/Cellar/samba/3.6.25/etc

(3)smb.conf添加代码

[mac]

path = /Users/xxx/share

read only = no

writeable = yes

guest ok = yes

create mask = 777

directory mask = 777

browseable = yes

3. smbclient -L \\IPADRESS -U username

samba报错:session setup failed: NT_STATUS_LOGON_FAILURE 解决

解决方法:

smbpasswd -a username

例如:

macs-Mac-mini:etc xxx$ smbclient -L //192.168.0.103 -U xxx

Enter xxx's password:

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.25]

Sharename       Type      Comment

---------       ----      -------

mac             Disk      <---- 共享的目录

IPC$            IPC       IPC Service (Samba Server)

Domain=[MYGROUP] OS=[Unix] Server=[Samba 3.6.25]

Server               Comment

---------            -------

MACS-MAC-MINI        Samba Server

Workgroup            Master

---------            -------

MAGICPIXEL           TPSQUID

MODIOTEK             TPDCSVR

MXCSOFT              MXCSOFTPDC

MYGROUP              MACS-MAC-MINI

WORKGROUP            KEVIN-PC

macs-Mac-mini:etc xxx$

最新文章

  1. bash获取properties文件资源
  2. apache2.4设置外网访问问题
  3. C++11新特性总结 (二)
  4. 【HTML5+MVC4】xhEditor网页编辑器图片上传
  5. OS X 禁止Android File Transfer自动启动
  6. 开源Math.NET基础数学类库使用(11)C#计算相关系数
  7. Memcached 两款.NET客户端的郁闷事儿
  8. MVC之序列化
  9. IOS 网络编程 代码
  10. WPF做的迁移文件小工具
  11. NET Core 1.0
  12. 【LeetCode】87. Scramble String
  13. 【JavaWeb】权限管理系统
  14. 安装 Docker &lt;一&gt;
  15. O/R关系的深入理解(转载)
  16. ABAP 省市县级联搜索帮助
  17. OSI网络七层协议+火了火了火
  18. 软件工程-CMM与CMMI
  19. SDRAM读写操作
  20. Java 重写 hashCode() 和 equals() 方法

热门文章

  1. Linux多线程之同步
  2. android sdk启动报错error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037:
  3. spring mvc 基于注解的使用总结
  4. spring_150803_component
  5. 十佳AngularJS框架
  6. [RM HA4] RM状态存储与还原原理详解
  7. IOS中表视图(UITableView)使用详解
  8. SPRING IN ACTION 第4版笔记-第九章Securing web applications-011-把敏感信息请求转为https(requiresChannel())
  9. React组件生命周期-正确执行运行阶段的函数
  10. Java-J2SE学习笔记-树状展现文件结构