amba是为了跨平台(windows及Linux)的文件共享而产生的网络文件系统,有了Samba,window用户可以像访问本地磁盘一样访问局域网(or 远端)Linux系统的磁盘,当然Linux用户也可以直接去访问windows系统的磁盘

关于samba的详细介绍可以参考鸟哥的LinuxSamba Wiki

1 Centos samba安装与启动

我们以Linux系统安装Samba Server 为例,Samba目前的版本为4.6版本,centos用户可以直接yum install samba, 启动也十分简单,service smb start (centos6) or systemctl start smb (centos7)

2 samba 配置

yum安装完samba之后,在/etc/samba/下面有samba的配置文件,一般会有一个smb.conf.example 配置实例,里面有各个配置项的详细解释

[global]
#workgroup 配置成和windows机器的工作组相同的名字
workgroup = WORKGROUP
server string = Samba Server
#netbios name 是用来设置局域网别名(不同于hostname),如果不用nmb服务的话,这个没有用处
netbios name = tjwq024113
#这2个选项用来设置字符集,防止出现乱码(window与Linux编码通常不一样)
dos charset = cp950
unix charset = UTF8
##
ntlm auth = no
lanman auth = no
client ntlmv2 auth = yes
##日志的配置
log file = /var/log/samba/log.%m
max log size = 50
##安全模式,4.6之后没有share模式(不需要鉴权)了,因此需要设置一个密码
security = user
passdb backend = tdbsam
##局域网内的browser配置,没有多少用处
domain master = yes
local master = yes
os level = 33
preferred master = yes

####下面是共享文件夹的配置
#pan设置了共享的名称,访问的时候用\\server\share来访问,而不是\\server\data\samba
[share]
#备注
comment = samba share 
#共享文件夹路径
path = /data/samba
browseable = yes
#设置客户端的写权限
writable = yes
#用于客户端新建文件(夹)的权限设置
create mask = 0664
directory mask = 0775
#需要注意这里的user必须设置成用户登录共享文件夹的用户,不要用%U,%U是客户端的用户
valid users = work
#设置是否公开,因为security设置了user 模式,所以这个配置无效了就
public = yes

然后需要创建samba用户,因为我们使用TDB数据库,所以用pdbedit来新建一个用户

$pdbedit -a -u samba  #-a add user option, -u specify a username

配置文件修改完后,需要用testparm来测试配置文件语法

然后用smbclient测试文件加可否正常访问

$testparm
$smbclient -L //server -Uwork
3 windows挂载samba共享磁盘

windows 用户想要访问Linux共享的磁盘,需要 win+R 弹出运行窗口,然后输入\\server\\share敲回车键,根据提示输入密码,则在网络那里就可以看到共享的磁盘了

当然右键点击并选择映射网络驱动器的话,还可以将其挂载,这样就可以像本地磁盘一样使用了

⤧  Next post [转] for() && fork() || fork() ⤧  Previous post openresty通过lua增加随机traceid