> 文章列表 > samba文件共享,windows与linux共享

samba文件共享,windows与linux共享

samba文件共享,windows与linux共享

 Samba 是在 Linux 和 UNIX 系统上实现 SMB 协议的一个免费软件,由服务器及客户端程序构成。

        NFS 与 samba 一样,也是在网络中实现文件共享的一种实现,但不幸的是,其不支持 windows 平台,samba 是能够在任何支持 SMB 协议的主机之间共享文件的一种实现,当然也包括 windows。

        SMB 是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

        SMB 协议是 C/S 型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。

一、windows 作为服务器,linux作为客户端

1.1 win10系统samba服务开启步骤

  • 打开【控制面板】
  • 打开【启动或关闭windows功能】
  • 打开【SMB1.0/CIFS 文件共享支持】
  • 重启电脑
  • 到磁盘中选择需要共享的文件夹
  • 选中文件夹【属性】-> 【共享】->【共享】->添加【Everyone】用户 -> 权限【读取/写入】->确定共享
  • 打开【控制面板】->【网络和Internet】->【网络和共享中心】->左侧【更改高级共享设置】->【专用】-> 打开【网络发现】、【文件和打印机共享】

1.2 linux系统挂载

  • mount挂载

首先创建被挂载的目录:

mkdir windows

将共享文件夹挂载到windows文件夹:

sudo mount -t cifs -o username=share,password=share //192.168.66.198/share ./windows

其中几个参数表示含义:
cifs:Common Internet File System,可以理解为网络文件系统。
usrname:访问共享文件夹的用户名
password:访问密码
//192.168.66.198/share:表示网络文件夹的地址,注意这里最后不能加/,如果是//192.168.66.198/share/则会报如下错误:mount: //192.168.66.198/share/ is not a valid block device

Tips:使用mount挂载的方法在系统重新启动后就会失效,如果希望开机时自动挂载,将下面设置加入/etc/fstab文件最后面就可以了。

//192.168.66.198/share /home/windows cifs defaults,username=share,password=share 0 2

其中/home/windows表示挂载点,就是上面windows目录的完整路径。

  • 使用samba连接

samba就是让windows和unix系列os之间的文件可以互相访问的软件。使用samba访问windows的共享文件夹,需要安装smbclient。

sudo apt-get install smbclient

安装好后,就可以访问共享的文件了。

smbclient --user=share //192.168.66.198/share
Enter share’s password: (输入密码回车)
smb: >

此时进入了smb的命令操作空间,可以使用help来查看命令的使用。

smb: > help…省略若干命令…
exit get getfacl geteas hardlink
help history iosize lcd link
…省略若干命令…也可以使用help查看单个命令的使用方式smb: > help getHELP get:
[local name] get a file

二、linux作为服务器,windows作为客户端

 2.1 Samba 的安装与服务器搭建

1、yum安装samba

yum install samba

2、修改配置文件,Samba服务程序的主配置文件 /etc/samba/smb.conf。

# See smb.conf.example for a more detailed config file or
# read the smb.conf manpage.
# Run 'testparm' to verify the config is correct after
# you modified it.[global]                          #全局设置workgroup = workgroup         #工作组名称security = user               #安全验证方式,共有4种map to guest = bad user   #目录匿名访问passdb backend = tdbsamprinting = cupsprintcap name = cupsload printers = yescups options = raw[homes]comment = Home Directoriesvalid users = %S, %D%w%Sbrowseable = Noread only = Noinherit acls = Yes[printers]comment = All Printerspath = /var/tmpprintable = Yescreate mask = 0600browseable = No[print$]comment = Printer Driverspath = /var/lib/samba/driverswrite list = @printadmin rootforce group = @printadmincreate mask = 0664directory mask = 0775
[public]                        #共享名称comment = cream mint        #提示信息,任意写path = /home/creammint      #共享目录public = yes                #允许“所有人可见”read only = no              #允许写入操作

security = share | user | server | domain #安全验证的方式,总共有4种

  1. share: 安全级别模式:客户端登录samba 服务器,不需要输入用户名和密码就可以浏览samba 服务器的资源,适用于公共的共享资源,安全性差,需要配合其他权限设置,保证samba 服务器的安全性。
  2. user: 客户端登录samba 服务器,需要提×××法帐号和密码,经过服务器验证才可以访问共享资源,服务器默认为此级别模式。
  3. server:使用独立的远程主机验证来访主机提供的口令(集中管理账户)
  4. domain:使用域控制器进行身份验证

2.2 windows下创建共享文件夹软连接

mklink /D "./configFile" \\\\192.168.140.145\\IMPShare

会创建configFile文件夹,需要确认文件夹下没有configFile文件夹或删除后再输入命令。