【转】Mac 10.10 yosemite 安装samba替代系统samba组件 -- samba不错不错
原文网址: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$
最新文章
- bash获取properties文件资源
- apache2.4设置外网访问问题
- C++11新特性总结 (二)
- 【HTML5+MVC4】xhEditor网页编辑器图片上传
- OS X 禁止Android File Transfer自动启动
- 开源Math.NET基础数学类库使用(11)C#计算相关系数
- Memcached 两款.NET客户端的郁闷事儿
- MVC之序列化
- IOS 网络编程 代码
- WPF做的迁移文件小工具
- NET Core 1.0
- 【LeetCode】87. Scramble String
- 【JavaWeb】权限管理系统
- 安装 Docker <;一>;
- O/R关系的深入理解(转载)
- ABAP 省市县级联搜索帮助
- OSI网络七层协议+火了火了火
- 软件工程-CMM与CMMI
- SDRAM读写操作
- Java 重写 hashCode() 和 equals() 方法
热门文章
- Linux多线程之同步
- android sdk启动报错error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037:
- spring mvc 基于注解的使用总结
- spring_150803_component
- 十佳AngularJS框架
- [RM HA4] RM状态存储与还原原理详解
- IOS中表视图(UITableView)使用详解
- SPRING IN ACTION 第4版笔记-第九章Securing web applications-011-把敏感信息请求转为https(requiresChannel())
- React组件生命周期-正确执行运行阶段的函数
- Java-J2SE学习笔记-树状展现文件结构