windows之间的文件共享很简单,但是如果要实现windows和linux之间的文件共享,该怎么办呢?特别是在一个团队中,一般会有一台装有linux系统的服务器,这个需求就显得很迫切。

samba很好的解决了这个痛点。Samba 是 SMB/CIFS 网络协议的重新实现, 它作为 NFS 的补充使得在 Linux 和 Windows 系统中进行文件共享、打印机共享更容易实现。ubuntu系统一般自带samba服务,不需要我们单独安装。

samba的部署很简单,只需要三部: 第一步:创建共享文件夹,并赋予相应的权限 第二步:配置samba参数文件 第三步:测试成功与否

下面以ubuntu16.04 为例来说明如部署该服务。



1配置文件参数介绍



在正式开始部署之前,我们先来了解一下samba 配置文件的详细参数。对文件共享服务要求不是很高的读者可以跳过这一步。直接开始我们的”三部曲“。如果想要配置更为复杂的文件共享服务,可以后面再来参考这部分。 

  1. global 参数 
  • workgroup = 工作组的名称:注意,主机群要相同
  • netbios name = 主机的 NetBIOS 名称啊,每部主机均不同
  • server string = 主机的简易说明,这个随便写即可 
  • log file = 登录档放置的档案,文件名可能会使用变量处理;
  • max log size = 登录档最大仅能到多少 Kbytes ,若大于该数字,则会被 rotate 掉 
  • security = user, server, domain, share 四选一,这四个设定值分别代表: 
  • encrypt passwords = Yes 代表密码要加密
  • smb passwd file = 密码放置的档案,通常是 /etc/samba/smbpasswd

共享文件参数设置 

  • [分享文件夹名称] :这个分享名称很重要,他是一个『代号』而已。
  • comment :分享文件夹的说明
  • path :分享文件夹的路径
  • read only:是否只读
  • public :是否让所有可以登入的用户看到这个项目
  • writable :是否可以写入
  • create mode 和 directory mode 都与权限有关
  • valid users = 用户,这个项目可以指定能够进入到此资源的特定使用者。

2部署开放的samba服务



  1. 新建共享文件夹 sudo mkdir -p /samba/test chmod -R 777 /samba/test
  2. 配置参数文件 sudo vim /etc/samba/smb.conf 
[global]	
workgroup = WORKGROUP	
server string = Samba Server %v	
netbios name = ubuntu	
security = user	
map to guest = bad user	
dns proxy = no	
[temp]	
path =/samba/test	
browsable =yes	
writable = yes	
guest ok = yes	
read only = no	
creat mode=777	
force creat mode=777	
directory mode = 777	
force directory mode = 777
  1. 测试 sudo /etc/init.d/samba restart file://192.168.1.11/看能否访问到共享文件```(注意,要把ip地址换成是自己的服务器的地址),看似否可以访问自己的共享目录。 
  2. windows系统和linux 系统运行docker的区别 windows 和 linux_文件共享

在windows上打开资源管理器直接输入\\192.168.1.11直接访问。尝试通过拖放将文件上传到共享,看看它是否正常工作,传输速度如何。注意,在windows端显示的共享文件夹的名称是参数配置文件中文件夹的名称,这里为temp) 

windows系统和linux 系统运行docker的区别 windows 和 linux_文件共享_02



3部署需要密码的samba服务



  1. 添加用户并创建共享文件夹 sudo useradd user01 sudo passwd user01 sudo smbpasswd -a user01 sudo pdbedit –L sudo mkdir -p /samba/data sudo chmod 777 /samba/data sudo chown root:user1 data
  2. 配置参数文件 sudo vim /etc/samba/smb.conf 
[global]	
workgroup = WORKGROUP	
server string = Samba Server %v	
netbios name = ubuntu	
security = user	
map to guest = bad user	
dns proxy = no	
[data]	
path =/samba/data	
browsable =yes	
writable = yes	
guest ok = no	
read only = no	
valid users=@user1
  1. 测试 

4绑定服务器ip(可选)



服务器重启后,路由器会重新分配ip,这给使用带来了很大的不方便。我们最好把服务器的地址绑定到某个固定的ip。这里我们以绑定到192.168.1.11为例。 suod gedit /etc/network/interfaces 

auto lo	
iface lo inet loopback	
auto enp0s31f6	
iface enp0s31f6 inet static	
address 192.168.1.11	
gateway 192.168.1.1	
netmask 255.255.255.0

参数的意义如下:

  • enp0s316:自己网卡而名称,可以通过ifconfig来查看
  • address:要绑定的ip
  • gateway和netmastk:自己查看电脑的参数。 
/etc/ini.d/network-manager restart	
ifdown enp0s31f6	
ifup enp0s31f6

至此,是不是觉得samba的部署既简单,又实用,如果感觉有用的话,就赶紧行动起来吧。