本文环境:CentOS 7
简介
在UNIX-like之间共享文件系统主要是通过NFS实现的,而Windows之间共享文件系统主要是通过网上邻居实现的,1984年Andrew Tridgell博士通过逆向工程技术研究出SMB(Server Message Block),一项能在UNIX和DOS之间提供文件系统共享的协议,Samba和CIFS都是SMB的一种具体实现,Samba是一款用于UNIX-like下的开源软件,而CIFS是微软实现用于Windows的一项协议(网上邻居正是基于这项协议),使用Samba就可以实现UNIX-like与Windows之间共享文件系统了。
SMB基于NetBIOS,所以Samba和CIFS也同样基于NetBIOS,NetBIOS由IBM开发,用于同一个局域网内少数终端之间的通信,由于开发时并不是针对大型网络,所以NetBIOS不能穿越路由器(不能跨越网段),但是这项技术确实很好用,所以微软也是用这个协议来架构Windows之间的通信,后来还发展出NetBIOS over TCP/IP这项技术,利用将NetBIOS封装为TCP和UDP包使得NetBIOS穿越路由器,能在互联网上传播了。
Samba基本配置
1.安装
[root@localhost ~]# yum -y install Samba
2.配置主配置文件
主配置文件在/etc/Samba/smb.conf,默认会有如下四个配置,
[global] 全局配置项,用于配置服务器的基本信息
[homes] 特殊配置项,代表每个登入用户的个人目录(家目录)
[printers] 特殊配置项,打印机的全局配置信息
[print$] 特殊配置项,表示单个打印机的配置信息,如[print1]表示第一台打印机的配置
现在我们写入一条简单的配置项,用于共享/tmp/share目录(自行创建此目录,并把权 限改为777),
[myshare]
comment = My Share #此配置项的说明性描述
path = /tmp/share #共享目录
writable=yes #是否可写,也可以是read only=no
关闭防火墙和SELinux,然后启动服务
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl start smb
添加Samba用户,先使用useradd创建一个用户(pdbedit -L可以查看现有Samba用 户,pdbedit -Lv查看详细信息)
[root@localhost ~]# useradd smbtest
useradd: user 'smbtest' already exists
[root@localhost ~]# smbpasswd -a smbtest
New SMB password:
Retype new SMB password:
Added user smbtest.
[root@localhost ~]# pdbedit -L
smbtest:1001:
测试,在Windows中打开“运行”,在其中输入“\+服务器的IP地址”:
输入用户名和密码:
登入成功:
可以看出myshare就是我们创建的共享目录,而右侧的smbtest就是[homes]这个特殊字 段自动创建的登入用户的个人目录。
新建文件:
能成功创建文件说明本次配置成功!
回到服务器中,查看一下/tmp/share目录,发现多了一个文件:
之所以是乱码,是因为当前服务器终端的编码是ASCII,不能显示汉字。
扩展:
guest ok=yes 或 public=yes
设置允许匿名用户登入,如果使用匿名用户登入,将自动映射为nobody用户
browseable=no
设置不可浏览,只能通过“IP+此目录名”进行浏览,如“\192.168.88.128hiddenShare”
invalid users=user1 或 invalid users=user1,@userss
设置黑名单,@用于设置一个组,可以用+代替,相反,valid users用于设置白名单
read only=yes 或 writeable=yes 或 writable=yes
都用于设置可写,其中后两个是第一个的别名
write list=@huu
表示除了huu组,其他人都不能写
在Windows中打开cmd,输入“net use”查看当前映射的smb驱动器,输入“smb use * /del”将它们删除。
更多信息请“man smb.conf”,每个选择后面的G表示此选项用于[global],而S表示用 于普通配置项。