Samba是在Linux和UNIX系统上实现的一个免费软件,由服务器及客户端程序构成。
SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。
上面是一些官方的解释,那对我而言,会怎么用呢,比如不用通过ftp软件把window的文件上传到linux服务器了,在linux服务器部署samba服务后,只要在window本地映射一个盘,以后如果想向服务器那里上传东西,就可以往这个盘里移动东西即可
下面展示是以linux centos7.2做为samba服务器,win10做为客户端
- 安装samba服务包
yum -y install samba rpm -q samba 是否安装成功 netstat -anp |grep 445 查看445端口
- 编辑smb配置文件
vi /etc/samba/smb.conf
[global] workgroup = SAMBA server string = Samba Server Version %v netbios name = Linux-Server log file = /var/log/samba/%m.log max log size = 10240 security = user # share passdb backend = tdbsam hosts allow = 192.168.56.1 192.168.1.102 # 允许客户端访问的ip[homes] comment = Home Directories valid users = %S, %D%w%S browseable = No read only = No inherit acls = Yes[printers] comment = All Printers path = /var/tmp printable = Yes create mask = 0600 browseable = No[print$] comment = Printer Drivers path = /var/lib/samba/drivers write list = @printadmin root force group = @printadmin create mask = 0664 directory mask = 0775[shares] # 共享文件目录 path = /smbtest/shares # 是否允许guest访问 public = no # 可访问的用户组、用户 valid user = smbusr # 是否浏览权限 browseable = yes # 是否可写权限 writable = yes
- 添加测试用户
useradd smbusr -d /smbtest/shares -s /bin/false 设置家目录,false只能访问共享目录chown smbusr:smbusr /smbtest/shares -R 给目录赋给用户和用户组smbpasswd -a smbusr
- 重新启动smb服务
先用这条命令查看启动状态systemctl status smb如果未启动systemctl start smb如果已启动systemctl restart smb
- 防火墙放行smb端口
开启防火墙端口 udp137 138 tcp 139 445有时是vi /etc/sysconfig/iptablessystemctl start firewalldfirewall-cmd --zone=public --add-port=80/tcp --permanentsystemctl restart firewalldfirewall-cmd --zone=public --list-ports
- 关闭selinux
vi /etc/selinux/config 或 setenforce 0getenforce 查看#SELINUX=enforcing #注释# SELINUXTYPE= can take one of three values:# targeted - Targeted processes are protected,# minimum - Modification of targeted policy. Only selected processes are protected.# mls - Multi Level Security protection.#SELINUXTYPE=targeted #注释SELINUX=DISABLED # 加这行
另外如果你想设置服务器设置为静态ip,你可以
vi /etc/sysconfig/network-scriptsifcfg-enp0s3systemctl restart networkTYPE="Ethernet"PROXY_METHOD="none"BROWSER_ONLY="no"BOOTPROTO="static" #关注点DEFROUTE="yes"IPV4_FAILURE_FATAL="no"IPV6INIT="yes"IPV6_AUTOCONF="yes"IPV6_DEFROUTE="yes"IPV6_FAILURE_FATAL="no"IPV6_ADDR_GEN_MODE="stable-privacy"NAME="enp0s3"UUID="e2b9d22b-0a5a-44cc-abf8-75d7f9458829"DEVICE="enp0s3"ONBOOT="yes" #关注点#添加下面这几行IPADDR=192.168.1.103NETMASK=255.255.255.0GATEWAY=192.168.1.254
加入开机自启动项
chkconfig smb on 设置开启自启动reboot 让开机自动启动项
客户端验证
其中访问 ip就是服务端ip,按照下列步骤,映射后进行文件常用操作,对比客户端和服务端
如果只要用v1服务可以参照下面的