1. 什么是samba?
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。【来自百度百科】
说白了,就是客户端机器通过samba使用SMB协议进行和linux服务器资源共享、编辑等。
2. 下载和安装samba
可到这个链接里下载最新的tar包https://download.samba.org/pub/samba/stable/,比如我下载了samba-3.5.8.tar.gz
解压:tar -zxvf samba-3.5.8.tar.gz
编译-安装: cd samba-3.5.8/source3; ./configure && make -j 4; make install
3. 文件配置
cd /usr/local/samba/ (默认安装到该路径下)
新建lib/smb.conf, 添加如下内容:
[global]
display charset: utf-8
unix charset = gbk
dos charset = gbk
workgroup = work
netbios name = work
server string = samba server
security = user
wide links = yes
follow symlinks = yes
unix extensions =no
[work]
comment = work user
path=/home/work
create mask = 0774
directory mask = 0775
writable = yes
valid users = work
browseable = yes
[sharefile]
comment = share user
path=/home/work
public=yes
writable = yes
guest ok = yes
配置解释:
[global] #全局配置字段
display charset: 指定使用SWAT(一种通过浏览器控制Samba的工具)时页面的默认文字编码
unix charset: 指定Samba所在的CentOS服务端新建文件或目录时的编码
dos charset: Windows 客户端的文字编码
workgroup:工作组,使用大写WORK
netbios name: 显示出来的机器名
server string: samba服务器说明
security: 验证和登录方式,这里我们用了user ;验证方式有好多种,这是其中一种;另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;
wide links: 不允许进行符号连接
follow symlinks:
unix extensions:
[work]: 看到的共享目录
path: 设置共享的目录放到哪里
create mask: 设置新建文件的默认权限
directory mask:设置创建文件夹时的默认权限
valid users: 有效用户(即可以访问该Samba服务器的用户)
writetable: 是否可写
browseable: 是否可浏览,若可浏览意味着工作组下可看到共享文件夹
[sharefile]:共享目录配置
4. 启动samba
添加samba lib到系统库,修改~/.bash_profile:
1) export LD_LIBRARY_PATH=/usr/local/samba/lib:$LD_LIBRARY_PATH
生效:
2) . ~/.bash_profile
添加samba用户,注意添加的用户需要是在系统里已存在的用户,然后设置密码:
3) smbpasswd -a work (设置work用户的SMB密码)
启动samba进程:
4) cd /usr/local/samba/sbin; ./smbd -D
查看进程是否真的启动了或通过端口139,445判断
5) ps auxf | grep smbd
netstat -npl |grep smbd
5. 使用sambd
打开Mac Finder,按下CMD+K,输入你的samba server ip,比如:
smb://10.10.10.10
右边有个+号可进行添加保存,下次使用直接在下拉栏里找就行,不需再次输入。
连接完成后,会提示你用『客人』还是『注册用户』登录。
6. 遇到的问题
1)全部的安装-启停操作需使用root身份
2)./smbd -D报错:
/usr/local/samba/sbin/smbd: error while loading shared libraries: libwbclient.so.0: cannot open shared object file: No such file or directory
解决办法:
首先查找这个so在哪,find / -name libwbclient.so.0
/usr/local/samba/lib/libwbclient.so.0
然后将so的位置放到系统so配置:echo "/usr/local/samba/lib/" >> /etc/ld.so.conf
生效:cd /usr/local/samba/sbin;ldconfig /etc/ld.so.conf
查看是否生效,如果输出关于samba的使用方法,那就对了:/usr/local/samba/sbin/smbd --help
3)在使用samba时,选择『注册用户』,输入用户名和密码(就是刚才执行的smbpasswd的用户和密码),一直登录不了,不知道什么原因。。。因为在smb.conf里还配置了共享方式,所以更改/usr/local/samba/lib/smb.conf中的security为share,然后Finder中连接登录时选择第一个『客人』的身份,完美解决。share方式有个缺陷,注:只能浏览,不能write。
参考: