cifs网络文件共享系统

cifs网络文件共享系统是linux系统与windos系统之间的文件共享(用于linux和windos之间的文件传输系统)

企业中常用的web服务,用来提供http://(超文本传输协议)。
web系统是客户端/服务器模式的,所以应该有服务器和客户端里两个部分。常用的服务器程序时Apache,常用的客户端程序是浏览器。www服从http协议,默认的TCP/IP端口是80,客户端和服务器的通信过程简述如下:

  1. 客户端(浏览器)和web服务器建立TCP连接,然后向web服务器发出访问请求,根据HTTP协议,该请求中包含了客户端的IP地址、浏览器的类型和请求的URL等一系列信息
  2. web服务器受到请求后,将客户端要求的界面内容返回到客户端。如果出现错误,则返回错误代码
  3. 断开与远端web服务器的连接
    一、samba服务的安装
[root@localhost ~]# yum install samba-common samba samba-client.x86_64 -y
[root@localhost ~]# systemctl start smb
[root@localhost ~]# systemctl enable smb
[root@localhost ~]# firewall-cmd --permanent --add-service=samba
[root@localhost ~]# firewall-cmd --permanent --add-service=samba-client 
[root@localhost ~]# firewall-cmd --reload 
[root@localhost ~]# smbclient -L //172.25.254.110  //匿名用户登陆
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
	---------            -------

1.samba服务的登陆和查看

[root@localhost ~]# smbpasswd -a student  //为smb添加用户student(该用户必须是真实存在的,能id student 出来的用户)
New SMB password:  //设置用户登陆smb服务的密码
Retype new SMB password:
Added user student.
[root@localhost ~]# 
[root@localhost ~]# pdbedit -L   //列出可以登陆samba服务的用户
student:1000:Student User
[root@localhost ~]# cd /home/student/
[root@localhost student]# touch file{1..10}
[root@localhost student]# ls
file1  file10  file2  file3  file4  file5  file6  file7  file8  file9
[root@localhost ~]# getsebool -a | grep samba  //查看smb的selinux状态
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@localhost ~]# setsebool -P samba_enable_home_dirs on  //打开家目录功能
[root@localhost student]# smbclient -L //172.25.254.110 -U student //登陆本地用户,系统拒绝查看家目录。
Enter student's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

	Sharename       Type      Comment
	---------       ----      -------
	IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
	student         Disk      Home Directories
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------
[root@localhost ~]# smbclient //172.25.254.110/student -U student //登陆查看家命令内容
Enter student's password: 
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
  .                                   D        0  Mon Nov 12 21:42:58 2018
  ..                                  D        0  Thu Jul 10 18:19:09 2014
  .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
  file1                               N        0  Mon Nov 12 21:42:58 2018
  file2                               N        0  Mon Nov 12 21:42:58 2018
  file3                               N        0  Mon Nov 12 21:42:58 2018
  file4                               N        0  Mon Nov 12 21:42:58 2018
  file5                               N        0  Mon Nov 12 21:42:58 2018
  file6                               N        0  Mon Nov 12 21:42:58 2018
  file7                               N        0  Mon Nov 12 21:42:58 2018
  file8                               N        0  Mon Nov 12 21:42:58 2018
  file9                               N        0  Mon Nov 12 21:42:58 2018

二、smb服务的用户添加和删除

pdbedit -L 查看用户列表
smbpasswd -a westos //添加用户
pdbedit -x westos //删除用户

[root@localhost ~]# pdbedit -L
student:1000:Student User
[root@localhost ~]# useradd westos
[root@localhost ~]# smbpasswd -a westos
New SMB password:
Retype new SMB password:
Added user westos.
[root@localhost ~]# pdbedit -L
student:1000:Student User
westos:1001:
[root@localhost ~]# pdbedit -x westos
[root@localhost ~]# pdbedit -L
student:1000:Student User

三、组名的修改和黑名单的建立

1.组名的修改
在配置文件中修改
vim /etc/samba/smb.conf
将原来的
89 workgroup = MYGROUP
修改为:
89 workgroup = westos

[root@localhost ~]# systemctl restart smb.service       //重启服务

[root@localhost ~]# smbclient   -L //172.25.254.110   -U student
Enter student's password: 
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]

	Sharename       Type      Comment
	---------       ----      -------
	IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
	student         Disk      Home Directories
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]

	Server               Comment
	---------            -------

	Workgroup            Master
	---------            -------
[root@localhost ~]# 

2.samba黑白名单的建立

[root@localhost ~]#  rpm -qc samba-common   //查找配置文件
[root@localhost ~]#  vim /etc/samba/smb.conf
89         workgroup = WESTOS   

98         hosts deny = 172.25.254.10  //添加这一行,禁止ip是172.25.245.10这台主机进行访问;这个时候可以用两台主机(客户端)去测试;
#(黑白名单任意添加一个,每次只能添加一个)     hosts allow = 172.25.254.10 //添加这一行,只允许ip为172.25.254.10这台主机机进行访问登陆,其他客户拒绝登陆;
[root@localhost ~]# systemctl restart smb.service  //重启服务

四、samba的自动挂载

1.临时挂载:

 [root@localhost ~]# mount  //172.25.254.110/student /mnt/ -o       username=student,password=123
 [root@localhost ~]# touch file{1..3} ##在客户端新建文件
 [root@localhost ~]# ls ##同步到服务端 

2.开机自动挂载

  [root@localhost ~]# vim /etc/fstab 
  //172.25.254.205/student  /mnt cifs        defaults,username=student,password=123
  [root@localhost ~]#  mount -a   ##加载文件/etc/fstab中的内容
  [root@localhost ~]#  df   ##挂载成功
  Filesystem               1K-blocks    Used Available Use% Mounted on
  /dev/vda1                 10473900 3182952   7290948  31% /
  devtmpfs                    469344       0    469344   0% /dev
 tmpfs                       484932     140    484792   1% /dev/shm
 tmpfs                       484932   12808    472124   3% /run
 tmpfs                       484932       0    484932   0% /sys/fs/cgroup
 /dev/mapper/vg0-vo          483670    2339    451840   1% /home
//172.25.254.110/student  10473900 3158308   7315592  31% /mnt

上述方法有一个缺点是如果文件内容修改错误会影响开机启动,于是推荐下述挂载策略

[root@localhost ~]#  vim /etc/rc.d/rc.local
mount -t cifs //172.25.254.110/student /mnt -o username=student,password=123
[root@localhost ~]#  chmod +x /etc/rc.d/rc.local ##增加可执行权限
[root@localhost ~]#   reboot 

五、samba的权限设置

[root@server mnt]# vim /etc/samba/smb.conf
       [hello]
        comment=westos dir
        path = /westos   //共享目录地址的绝对路径
        browseable = yes  //是否允许浏览:browseable=no(不允许)不用重启,即改生效;
        writeable = yes   //是否可写: 需要重启;
        write list = +student  //组用户可写 ;+ 或者 @ 都可以

[root@server mnt]# systemctl restart smb.service      //重启服务
[root@server mnt]# chmod 777 /westos      //改变权限
[root@server mnt]# usermod -G student westos     //让westos为student用户的组

//客户端测试:

[root@client ~]# mount //172.25.254.110/hello /mnt -o username=westos,password=westos //westos用户挂载,测试
[root@client ~]# cd /mnt
[root@client mnt]# touch file4 //成功建立file4文件
[root@client mnt]# ll 
-rw-r--r-- 1    1001    1001 0 Jun  2 02:43 file4   //建立成功,这里1001是westos用户的id,因为客户端主机没有westos用户;

六、多用户挂载

客户端设置:

[root@client ~]# yum install cifs-utils.x86_64 -y 
[root@client ~]# vim /root/smbpass  //编辑文件,文件,参数指定:指定用户名和密码
         username=student
         password=student
[root@client ~]# mount -o credentials=/root/smbpass,sec=ntlmssp,multiuser //172.25.254.247/DIR /mnt
//挂载,其中,credentials=/root/smbpass文件指定的用户名、密码,sec=ntlmssp 认证方式(因为下载的samba是4.1的,所有认证方式是ntlmssp;查询方式rpm -ql | grep samba), multiuser为多用户挂载
[root@client ~]# useradd test  //添加一个不存在的用户
[root@client ~]# su - test  //切换到此用户环境下
[test@client ~]$ cd /mnt
[test@client mnt]$ ls
ls: reading directory .: Permission denied  //切换到test用户,访问拒绝,保证了安全性
[test@client ~]$ cifscreds add -u westos 172.25.254.247  //命令通过samba用户认证,看到目录下的内容
You already have stashed credentials for 172.25.254.247 (172.25.254.247)
If you want to update them use:
    cifscreds update
[test@client ~]$ cifscreds add -u westos 172.25.254.247
Password: 
[test@client ~]$ ls /mnt
file  file1  file3

七、匿名用户的登陆

[root@server ~]# vim /etc/samba/smb.conf
 126   map to guest=bad user ##这个配置的意思是将所有samba系统主机所不能正确识别的用户都映射成guest用户,这样其他主机访问目录时就不再需要用户名和密码了 
 328   guest ok=yes    ##匿名用户可以登录
  [root@server ~]# systemctl restart smb.servic

测试:

[root@client ~]# smbclient //172.25.254.110/DIR 
Enter root's password: 
Anonymous login successful
Domain=[HELLO] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
  .                                    D        0  Mon Jun  4 06:34:13 2018
  ..                                   D        0  Mon Jun  4 04:28:21 2018
  hello                                N        0  Mon Jun  4 05:42:48 2018
  file1                                N        0  Mon Jun  4 06:42:48 2018
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CIFS(Common Internet File System) 协议 CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机的服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议现在是局域网上用于服务器文件访问和打印的协议。象SMB协议一样,CIFS在高层运行,而不象TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议和超文本传输协议的一个实现。 SMB协议是基于TCP-NETBIOS下的,一般端口使用为139,445。 服务器信息块(SMB)协议是一种IBM协议,用于在计算机间共享文件、打印机、串口等。SMB 协议可以用在因特网的TCP/IP协议之上,也可以用在其它网络协议如IPX和NetBEUI 之上。   SMB 一种客户机/服务器、请求/响应协议。通过 SMB 协议,客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。此外通过 SMB 协议,应用程序可以访问远程服务器端的文件、以及打印机、邮件槽(mailslot)、命名管道(named pipe)等资源。   在 TCP/IP 环境下,客户机通过 NetBIOS over TCP/IP(或 NetBEUI/TCP 或 SPX/IPX)连接服务器。一旦连接成功,客户机可发送 SMB 命令到服务器上,从而客户机能够访问共享目录、打开文件、读写文件,以及一切在文件系统上能做的所有事情。   从 Windows 95 开始,Microsoft Windows 操作系统(operating system)都包括了客户机服务器 SMB 协议支持。Microsoft 为 Internet 提供了 SMB 的开源版本,即通用 Internet 文件系统CIFS)。与现有 Internet 应用程序如文件传输协议(FTP)相比, CIFS 灵活性更大。对于 UNIX 系统,可使用一种称为 Samba 的共享软件。
开启windowsXP空密码共享访问 1.检查guest账户是否开启    XP默认情况下不开启guest账户,因此些为了其他人能浏览你的计算机,请启用guest账户。同时,为了安全请为guest设置密码或相应的权限。当然,也可以为每一台机器设置一个用户名和密码以便计算机之间的互相访问。 2.检查是否拒绝Guest用户从网络访问本机 当你开启了guest账户却还是根本不能访问时,请检查设置是否为拒绝guest从网络访问计算机,因为XP默认是不允许guest从网络登录的,所以即使开了guest也一样不能访问。在开启了系统Guest用户的情况下解除对Guest账号的限制. 点击“开始→运行”,在“运行”对话框输入“gpedit.msc”,打开组策略编辑器,依次选择“计算机配置→Windows设置→安全设置→本地策略→用户权利指派”,双击“拒绝从网络访问这台计算机”策略,删除里面的“Guest”账号。 这样其他用户就能够用Guest账号通过网络访问使用Windows XP系统的计算机了。并且在双击“从网络访问此计算机”策略添加“Guest”账号。 3.改网络访问模式    XP默认是把从网络登录的所有用户都按来宾账户处理的,因此即使管理员从网络登录也只具有来宾的权限,若遇到不能访问的情况,请尝试更改网络的访问模式。打开组策略编辑器,依次选择“计算机配置→Windows设置→安全设置→本地策略→安全选项”,双击“网络访问:本地账号的共享和安全模式”策略,将默认设置“仅来宾—本地用户以来宾身份验证”,更改为“经典:本地用户以自己的身份验证”。 这样即使不开启guest,你也可以通过输入本地的账户和密码来登录你要访问的计算机,本地的账户和密码为你要访问的计算机内已经的账户和密码。若访问网络时需要账户和密码,可以通过输入你要访问的计算机内已经的账户和密码来登录。 4.确保Server服务和NetBIOS协议开启 NetBIOS(Network Basic Input Output System,网络基本输入输出系统),是一种应用程序接口(API),系统可以利用WINS服务、广播及Lmhost文件等多种模式将NetBIOS名解析为相应IP地址,实现信息通讯,所以在局域网内部使用NetBIOS协议可以方便地实现消息通信及资源的共享。对应的端口是(137,138,139)。137端口的主要作用是在局域网提供计算机的名字或IP地址查询服务,一般安装了NetBIOS协议后,该端口会自动处于开放状态137、138端口都属于UDP端口,它们在局域网相互传输文件信息时,就会发生作用。而138端口的主要作用就是提供NetBIOS环境下的计算机名浏览功能。139端口是一种TCP端口,该端口在你通过网上邻居访问局域网的共享文件或共享打印机时就能发挥作用;445端口也是一种TCP端口,该端口在Windows 2000 Server或Windows Server 2003系统发挥的作用与139端口是完全相同的。具体地说:445端口也是提供局域网文件或打印机共享服务。不过该端口是基于CIFS协议(通用因特网文件 系统协议)工作的,而139端口是基于SMB协议(服务器协议族)对外提供共享服务. 5.一个值得注意的问题    我们可能还会遇到另外一个问题,即当用户的口令为空时,即使你做了上述的所有的更改还是不能进行登录,访问还是会被拒绝。(如用administrator账号,密码为空时)这是因为,在系统“安全选项”有“账户:使用空白密码的本地账户只允许进行控制台登录”策略默认是启用的,根据Windows XP安全策略拒绝优先的原则,密码为空的用户通过网络访问使用Windows XP的计算机时便会被禁止。我们只要将这个策略停用即可解决问题。在安全选项,找到"账户:使用空白密码的本地账户只允许进行控制台登录”项,停用就可以,否则即使开了guest并改成经典模式还是不能登录。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值