CIFS (Common Internet File System)简介:
通用Internet文件系统在windows主机之间进行网络文件共享是通过使用微软公司自己的CIFS服务实现的。CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机的服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议现在是局域网上用于服务器文件访问和打印的协议。象SMB协议一样,CIFS在高层运行,而不象TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。
CIFS (Common Internet File System)功能:
1.访问服务器本地文件并读写这些文件
2.与其它用户一起共享一些文件块
3.在断线时自动恢复与网络的连接
4.使用西欧字符文件名
一般来说,CIFS使用户得到比FTP更好的对文件的控制。它提供潜在的更直接地服务器程序接口,这比使用HTTP协议的浏览器更好。CIFS最典型的应用是windows用户能够从“网上邻居”中找到网络中的其他主机并访问其中的共享文件夹.
samba的服务安装以及配置:
1.安装samba服务:
服务端(server虚拟机172.25.254.220):
[root@server ~]# yum install samba samba-client samba-common -y ##安装服务(samba服务器应用程序 samba-client客户端应用程序 samba-common是samba的支持文件)
Loaded plugins: langpacks
rhel_dvd | 4.1 kB 00:00
(1/2): rhel_dvd/group_gz | 134 kB 00:00
(2/2): rhel_dvd/primary_db | 3.4 MB 00:00
Package samba-common-4.1.1-31.el7.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package samba.x86_64 0:4.1.1-31.el7 will be installed
---> Package samba-client.x86_64 0:4.1.1-31.el7 will be installed
--> Finished Dependency Resolution
[root@server ~]# systemctl start smb ##开启服务
[root@server ~]# systemctl enable smb.service ##开机自动开启
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
[root@server ~]# systemctl stop firewalld ##关闭防火墙
[root@server ~]# systemctl disable firewalld ##开机自动关闭防火墙
rm '/etc/systemd/system/basic.target.wants/firewalld.service'
rm '/etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service'
[root@server ~]# netstat -antlupe | grep smb ##查看服务使用的端口445 139
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 0 59714 3257/smbd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 0 59715 3257/smbd
tcp6 0 0 :::445 :::* LISTEN 0 59712 3257/smbd
tcp6 0 0 :::139 :::* LISTEN 0 59713 3257/smbd
客户端(desktop虚拟机127.25.254.120):
[root@client ~]# yum install samba-client -y ##安装服务
Loaded plugins: langpacks
rhel_dvd | 4.1 kB 00:00
(1/2): rhel_dvd/group_gz | 134 kB 00:00
(2/2): rhel_dvd/primary_db | 3.4 MB 00:00
Resolving Dependencies
--> Running transaction check
---> Package samba-client.x86_64 0:4.1.1-31.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
[root@client ~]# smbclient -L //172.25.254.220 ##登陆到服务端的smb
Enter root's password: ##此时是非用户登陆,没有密码
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (Samba Server Version 4.1.1)
Anonymous login successful
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
Server Comment
--------- -------
Workgroup Master
--------- ------- ##里面是空的,什么都没有
2.建立用户登陆:必须是虚拟机里真实存在的用户:
服务端(server虚拟机):
[root@server ~]# id student ##student是存在的
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
[root@server ~]# useradd westos ##没有westos用户,需要先在虚拟机里添加用户
[root@server ~]# id westos ##添加成功
uid=1001(westos) gid=1001(westos) groups=1001(westos)
[root@server ~]# smbpasswd -a student ##添加smb用户student
New SMB password:
Retype new SMB password:
Added user student.
[root@server ~]# smbpasswd -a westos ##添加smb用户westos
New SMB password:
Retype new SMB password:
Added user westos.
[root@server ~]# pdbedit -L ##查看smb用户
student:1000:Student User
westos:1001: ##添加用户成功
[root@server ~]# getsebool -a | grep samba ##查看samba服务接口
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> off
samba_export_all_ro --> off
samba_export_all_rw --> off
samba_portmapper --> off
samba_run_unconfined --> off
samba_share_fusefs --> off
samba_share_nfs --> off
sanlock_use_samba --> off
use_samba_home_dirs --> off
virt_sandbox_use_samba --> off
virt_use_samba --> off
[root@server ~]# setsebool -P samba_enable_home_dirs on ##开启samba家目录接口
客户端(desktop虚拟机):
[root@client ~]# smbclient //172.25.254.220/student -U student ##使用student用户登陆服务端的smb
Enter student's password: ##输入刚才设置的密码
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls ##可以查看student用户共享的家目录
NT_STATUS_ACCESS_DENIED listing \* ##这个报错是在selinux开启的情况下,无法看到用户里面共享的文件,需要在服务端开启服务接口
smb: \> ls
. D 0 Thu Jul 10 19:06:52 2014
.. D 0 Fri Jun 1 21:46:23 2018
.bash_logout H 18 Wed Jan 29 07:45:18 2014
.bash_profile H 193 Wed Jan 29 07:45:18 2014
.bashrc H 231 Wed Jan 29 07:45:18 2014
.ssh DH 0 Thu Jul 10 18:19:10 2014
.config DH 0 Thu Jul 10 19:06:53 2014
40913 blocks of size 262144. 28597 blocks available
3.上传文件实用samba服务进行共享:
客户端(desktop虚拟机):
第一种挂载方式:
[root@client ~]# vim /etc/fstab ##编辑文件进行挂载
写入://172.25.254.220/student /mnt cifs defaults,username=student,password=redhat 0 0
[root@client ~]# mount -a ##挂载
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/vda1 10473900 3182012