一、概述

windows挂载linux文件夹采用samba服务,本文将介绍此种类型。

二、搭建

实验的环境 一台Linux:CentOS7.3,一台Windows:Win 10

Server端:192.168.56.88 文件实际存放的服务器(linux)

Client端:192.168.56.1 挂载的服务器(windows),即将server端的共享文件夹挂载到client端

【Server端】

1. 安装samba服务

[root@localhost ~]# yum install samba

2. 修改配置文件/etc/samba/smb.conf

[global]
workgroup = SAMBA
security = user

passdb backend = tdbsam

printing = cups
printcap name = cups
load printers = yes
cups options = raw

[gxwjj]
path = /u02
writable = yes
create mask = 0664
directory mask = 0775

说明:[global]不用更改,删除[homes]、[printers]、[print$]

添加[gxwjj],中括号里面的名称随意命名

path = /u02 共享的目录

writable = yes 可读写

create mask = 0664 文件的权限

directory mask = 0775 目录的权限

3. 创建用于共享资源的账户

首先创建linux账户,接着创建samba账户,与linux用户名一样

[root@localhost ~]# useradd bao
[root@localhost ~]# pdbedit -a -u bao

文件挂载(四)- windows挂载linux文件夹_linux

++注意这里输入的密码尽量不要与linux用户的密码相同,否则容易引起数据泄露,因为别人可能直接通过这个账户和密码就进到服务器端了。++

4. 创建共享目录

[root@localhost ~]# mkdir /u02
[root@localhost ~]# chown bao: /u02

5. 关闭防火墙和selinux,启动samba服务,注意服务名是smb,而不是samba

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
[root@localhost ~]# systemctl start smb

【Client端】

1. 挂载

打开windows界面,输入两个\和server端的ip地址,回车

文件挂载(四)- windows挂载linux文件夹_linux_02

文件挂载(四)- windows挂载linux文件夹_共享文件夹_03

密码就填“pdbedit -a -u bao”这步输入的密码

文件挂载(四)- windows挂载linux文件夹_oracle_04

这里显示的gxwjj就是写在server端smb.conf里的配置项

文件挂载(四)- windows挂载linux文件夹_linux_05

文件挂载(四)- windows挂载linux文件夹_linux_06

2. 写入测试文件

文件挂载(四)- windows挂载linux文件夹_linux_07

去server端查看,就能找到在client端创建的文件了

文件挂载(四)- windows挂载linux文件夹_共享文件夹_08

文件挂载(四)- windows挂载linux文件夹_共享文件夹_09

三、linux挂载linux

samba不仅适用于windows挂载linux文件夹,同样也适用于linux挂载linux文件夹。再找一台linux机器(192.168.56.77)做client端

[root@oracle19c1 ~]# yum install cifs-utils
[root@oracle19c1 ~]# mkdir /share
[root@oracle19c1 ~]# mount //192.168.56.88/gxwjj /share -o username=bao,password=xxx 密码就填“pdbedit -a -u bao”这步输入的密码

如果想开机自动挂载可以写在/etc/fstab中

vi /etc/fstab
//192.168.56.88/gxwjj /share cifs defaults,username=bao,password=xxx 0 0

四、samba需要开通的端口

查看samba用到的端口,可以看到smbd用到445和139端口,如果server端防火墙没关闭,测试下来,对于客户端是linux,那么就需要开通139或445任一端口即可,对于客户端是windows,则必须开通445端口,139端口无用。具体实验留给读者自行完成。

[root@localhost ~]# netstat -tpnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 2685/smbd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 1/systemd
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1027/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 1301/master
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 2685/smbd
tcp6 0 0 :::139 :::* LISTEN 2685/smbd
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::22 :::* LISTEN 1027/sshd
tcp6 0 0 ::1:25 :::* LISTEN 1301/master
tcp6 0 0 :::445 :::* LISTEN 2685/smbd

五、总结


  1. windows挂载linux文件夹,linux挂载linux文件夹都可以采用samba服务。linux挂载linux文件夹还可以采用nfs。具体选用哪种方式呢?
    如果server端共享文件夹,不知道client端的类型,那么就采用samba服务。如果确定client端只有linux,那么就用nfs,因为nfs配置简单。
  2. server端的selinux和防火墙需要关闭,如果防火墙没关,那么需要开通445端口。