Samba共享文件系统

Samba共享文件系统

共享的原理:存储分离:把内容共享出去给别人用
Linux:CIFS共享管理块
windows:SMB

CIFS,SMB:只不过在不同系统叫的名字不一样

当web服务器压力过大时 ,用多台站点为1台服务器分担压力, 3台主机 如果每台主机分别存有支付宝帐号注册信息
如果1号主机挂了,应该怎么办?
技术:
存储分离,把内容分享出去给别人用。
最底层1个存储服务器
3台主机把存储目录都存放在存储服务器里面
如果1号挂了,2号可以通过网络访问其他主机存进去的信,因此把内容共享出去给别人用cifs

 Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。
 SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
 SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

Samba-common 	##Samba 的支持命令
Samba-client  ##客户端应用程序
Samba		  ##服务器应用程序
服务端口: 通常使用 TCP/445 进行所有连接。还使用UDP137、UDP138和TCP/139 进行向后兼容
主配置文件: /etc/samba/smb.conf

samba 用户必须是系统用户
SMB 密码和系统密码无关
SMB 默认共享的都是自己的家目录

服务端是desktop,172.25.254.112
客户端是server,172.25.254.212

【1】samba服务器的安装及访问调试

1: yum  search samba   ##查看客户,共享命令,服务
2: yum install samba-client.x86_64 samba-common.x86_64 samba.x86_64
              客户                   命令                    服务
3: systemctl start smb 
   firewall-cmd --permanent --add-service=samba
   firewall-cmd --permanent --add-service=samba-client 
   firewall-cmd --reload
   firewall-cmd --list-all
4: netstat -antlupe | grep smb   ##查看端口445
  
5:pdbedit -L       查看所有的共享用户

(1,2)
在这里插入图片描述
(3)
在这里插入图片描述
(4)
在这里插入图片描述
(5)在这里插入图片描述

【2】添加用户为smb用户,必须是本地用户

 1:useradd westos
 2: useradd lee
 3: smbpasswd  -a westos    更改用户共享的smb密码,和用户系统密码无关
 4: smbpasswd  -a lee
 5: pdbedit -L   ##有新建的两个用户westos,lee

在这里插入图片描述
共享方法一:

为了测试方便,在172.25.254.112连接212
 ssh root@172.25.254.212  -X
在212:
 1:  yum install samba-client.x86_64   -y
 2:  smbclient  -L //172.25.254.162                  ##-L:后面接访问的主机,匿名用户登陆,输入密码时直接回车即可
 3:  smbclient  -L //172.25.254.162 -U westos        ## 实名用户登陆查看
 4:  smbclient   //172.25.254.162/westos -U westos   ## 以westos用户实名登陆共查看享目录
    smb: \> !ls                ##查看本地可上传文件
      put acanonda-ks.cfg                ##上传到112
      quit
 
 测试:
 5:在112
 ls  /home/westos   ##默认路径,有212上传的文件

在这里插入图片描述
(1)在这里插入图片描述
(2)
在这里插入图片描述
(3)
在这里插入图片描述
(4)
在这里插入图片描述
(5)测试:112
在这里插入图片描述

共享方法二挂载:

  ssh root@172.25.254.212  -X

 1: mount //172.25.254.112/westos /mnt -o username=westos,password=westos
    ##以westos用户登录共享,挂载到/mnt下
   cd /mnt  
   ls 有上传的文件
  touch file   ##在mnt下建立文件
   ls /mnt/   ##查看到建立的文件
2: 
测试:
在112端:ls /home/westos  ##有212建立在/mnt/下的文件

(1)在这里插入图片描述
(2)
测试112:

在这里插入图片描述

samba基本操作

【2】 ####允许客户访问设置 (黑白名单)

##非系统目录的共享
白名单:

1:rpm -qc samba-common  ##查看到主配置文件  
2: vim /etc/samba/smb.conf  ##主配置文件
    89  workgroup = WESTOS
    96  hosts allow = 172.25.254.212 ##只允许212共享,其他不可以,如果不写入 hosts allow,默认全都可以访问
    ## hosts allow = 172.25.254. 表示这个域内可以访问
  systemctl restart  smb.service     hosts allow = 172.25.254.  ##.后面有空格,表示这个网段的主机可以访问**
 
 3:
测试:在212: smbclient  -L //172.25.254.112 -U westos
    可看到Domain=[WESTOS]
    只有212可以共享,其他失败

(1)在这里插入图片描述
(2): vim /etc/samba/smb.conf
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(3)
测试:

在这里插入图片描述
在这里插入图片描述
黑名单

 vim /etc/samba/smb.conf
   89  workgroup = WESTOS
   96;  hosts allow = 172.25.254.212   ##注释
   97   hosts deny = 172.25.254.212    ##不允许212共享,其他可以

 systemctl restart  smb.service
测试:
  在212:
  smbclient  -L //172.25.254.112 -U westos  ##共享失败
  在其他主机,例如 12 :smbclient  -L //172.25.254.112 -U westos  可以共享 

vim /etc/samba/smb.conf
在这里插入图片描述
systemctl restart smb.service
测试:server 172.25.254.212
在这里插入图片描述
真机 172.25.254.12
在这里插入图片描述

【3】#####共享服务端建立的目录

 用Boolean控制系统的安全上下文
 Boolean打开:开关全开,不太安全
 vim /etc/sysconfig/selinux 
 selinux关闭的状态下:不会影响共享
 selinux开启的状态下: 更改安全上下文,避免影响共享
 更改安全上下文:可以修改自己建立的安全上下文,不能修改系统的安全上下文

步骤:
1:在112:

 (1) vim /etc/sysconfig/selinux
     SELINUX=enforcing
     reboot

 (2) mkdir /westos_smb
     ls -ld /westos_smb

 (3)vim   /etc/samba/smb.conf 
   在文件末尾:
    [WESTOS]                  ##共享出去客户端看到的目录(指定共享出去的目录名称)
	comment = Share Directory ## 解释目录的备注信息,可任意写
    path = /westos_smb        ##服务器自己的目录,即共享目录的绝对路径 
 systemctl restart  smb.service

  (4) 修改安全上下文(在selinux开启的状态下)
     semanage fcontext -a -t  samba_share_t '/westos_smb(/.*?)?'##修改/smb目录及目录里面的内的安全上下文标
     restorecon -RvvF /westos_smb/    ####加载安全上下文标签属性为 samba_share_t

(1) vim /etc/sysconfig/selinux
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
(2)
在这里插入图片描述
(3)vim /etc/samba/smb.conf
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2:测试:在212:

 (1)mount  //172.25.254.112/WESTOS /mnt -o username=westos,password=westos
    cd /mnt
    ls  ##可以查看,但是不能创建文件
   touch file  #没有权限

在这里插入图片描述
添加执行权限:

3: 在112:
   vim    /etc/samba/smb.conf
     [WESTOS]                  
     comment = Share Directory
     path = /westos_smb         
     writable = yes         ##设置目录可写     
  systemctl restart  smb.service
  chmod  777 /westos_smb/    ###设置westos用户对/westos_smb 的读写执行权限

在这里插入图片描述
在这里插入图片描述
4: 再次测试:在212:

    mount  //172.25.254.112/WESTOS /mnt -o username=westos,password=westos
    cd /mnt
    ls          
    touch file   ##已添加权限,可以创建文件
    ll
    -rw-r--r-- 1 1001 1001  0 ...
    因为是在westos目录下创建的文件,所以file的uid为westos的uid

在这里插入图片描述
5:id westos
uid=1001

在112:chmod 755 /westos_smb
     setfacl -m u:westos:rwx /westos_smb
212: ll 
    -rw-r--r-- 1 westos westos  0 ..

在这里插入图片描述
在这里插入图片描述

【4】 系统级目录共享

概念:
打开布尔值作用:可以共享读写系统级目录 
系统级文件不能直接修改其安全上下文,因为系统级文件可能不止smb一个服务会读取,如果修改会影响其他。只能修改smb 服务在selinux中的安全级别
 //打开该布尔值后可以共享所有系统级目录,比安全上下文的级别高 

(1)服务端:

1:  vim /etc/samba/smb.conf
       [mnt]
       comment = Share system mnt direcotry
 	   path = /mnt
       writable = yes  ##添加进去还是不能创建文件,因为是系统级目录,所以修改布尔值后才有权限
    systemctl restart smb.service
     ll -Zd /mnt	  ##可以看出安全上下文与smb服务不匹配  
2:   getsebool -a | grep samba 
    setsebool -P samba_export_all_ro on | 1  ###设置selinux对smb服务的只读权限永久开启,-P 永久属性不会随着系统的重启而失效。
3:  setsebool -P samba_export_all_rw on | 1 ##设置selinux对smb服务的读写权限永久开启,开启此权限后selinux对smb服务的所有安全策略跳 过,降低smb服务的安全性。
                  
5:  setfacl -m u:westos:rwx /mnt             ###设置westos用户对/mnt的读写执行权限**

1: vim /etc/samba/smb.conf
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
测试:

6:客户端:
   mount //172.25.254.112/mnt /mnt -o username=westos,password=westos
   cd /mnt
   touch file1
 在服务端;
   cd /mnt
   ls       ##可以看到在客户端建立的file文件

客户端:
在这里插入图片描述
服务端:
在这里插入图片描述
(2) 打开布尔值后,共享不再受selinux影响,自己创建的文件不需要更改安全上下文,共享出去客户端依然可以创建文件
步骤:

服务端:mkdir /lee/
      chmod 777 /lee
      vim    /etc/samba/smb.conf
         [WESTOS]                  
         comment = Share Directory
     	 path = /lee         
         writable = yes         ##设置目录可写     
      systemctl restart  smb.service
测试:
客户端:  mount //172.25.254.112/lee /mnt -o username=westos,password=westos
        cd /mnt
        touch file  ##有权限
服务端:cd /lee/
     ls   ##有创建的文件file

在这里插入图片描述
vim /etc/samba/smb.conf
在这里插入图片描述
测试:
客户端

在这里插入图片描述
服务端:
在这里插入图片描述
在这里插入图片描述

【5】###smb权限管理 Samba 配置文件参数

1 writable = yes     ###允许共享的用户可写
2 browseable = yes|no    ###samba服务列出时no隐藏共享目录,yes显示目录,默认为yes
3 write list	= westos ## 只有westos用户可写 ,用lee用户测试,lee用户不可写  + |@  是对其组成员可写
4 valid users = westos ##后面接用户,该目录只能由该用户登陆 + |@ 对其组成员可登陆
5 map to guest = bad user  ##设置匿名用户映射为guest(把所有没有用户身份的访问都定义成guest) 
  guest ok = yes        ##guest游客登陆功能打开,匿名用户可以登陆
6  admin users = westos	表示设置普通用户的身份为root(以westos身份登陆smb共享目录的时候拥有超户的身份),组身份不变

1: 共享目录显示及隐藏 : browseable = yes|no

   vim /etc/samba/smb.conf
 【mnt】
  comment = Share system mnt direcotry
  path = /mnt
  browseable = no     ,
    systemctl restart smb.service
  客户端测试:
smbclient -L //172.25.254.112  ##no隐藏了mnt,yes的时候显示mnt

显示目录:
vim /etc/samba/smb.conf

在这里插入图片描述
在这里插入图片描述
隐藏目录:
vim /etc/samba/smb.conf

在这里插入图片描述
在这里插入图片描述
2.指定用户执行权限 :writelist = westos

  vim /etc/samba/smb.conf
     【mnt】
  comment = Share system mnt direcotry
  path = /mnt
  browseable = yes 
      write list = westos  ##对于westos用户可写,lee用户没有权限
  systemctl restart smb.service
  chmod 777 /mnt

 客户端测试:
  mount //172.25.254.112/mnt /mnt -o username=westos,password=westos
  cd /mnt/
  ls
  touch  file   ##可以建立文件,使用lee用户失败

vim /etc/samba/smb.conf
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3:设置组成员可执行权限 : write list = +lee lee的组成员才有权限

服务:  vim /etc/samba/smb.conf
         [WESTOS]                  
     	 comment = Share Directory
         path = /lee     
         write list = +lee      ##lee的组成员有写权限
      ;  writable = yes  
  systemctl restart smb.service
客户: 
      mount //172.25.254.112/mnt /mnt -o username=westos,password=westos
      cd /mnt/
      ls
      touch  file1  失败
服务:
加入组成员:usermod -G lee  westos ##此时westos是lee的组成员
客户; 重新挂载 
      mount //172.25.254.112/mnt /mnt -o username=westos,password=westos
      cd /mnt/
      ls
      touch  file1  成功

vim /etc/samba/smb.conf在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4:设定用户登陆: valid users = lee
##后面接用户,该目录只能由该用户登陆 + |@ 对其组成员可登陆

服务: vim /etc/samba/smb.conf
         [WESTOS]                  
    	 comment = Share Directory
    	 path = /lee 
        valid user = lee  ###lee用户才可共享
      systemctl restart smb.service
测试:
客户:
    mount //172.25.254.112/mnt /mnt -o username=westos,password=westos  ##失败
    mount //172.25.254.112/mnt /mnt -o username=westos,password=westos  ##共享成功
    cd /mnt
    ls

vim /etc/samba/smb.conf
在这里插入图片描述
测试:
在这里插入图片描述
vim /etc/samba/smb.conf在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
5: 匿名用户登录:map to guest = bad user

服务: 
  vim /etc/samba/smb.conf
     126 map to guest = bad user  ##设置匿名用户映射为guest(把所有没有用户身份的访问都定义成guest) 
     336 guest ok = yes        ##guest游客登陆功能打开,匿名用户可以登陆
  systemctl restart smb.service
测试:
客户
   方一:smbclient  -L //172.25.254.112/WESTOS  ##匿名用户登陆输入密码回车即可
   方二:mount  //172.25.254.112/WESTOS /mnt -o  username=guest
 匿名用户挂载 username=guest,password=""
 测试:
客户端 
smbclient //172.25.254.112/mnt  ##可以直接登陆,密码为空 ,输入密码时回车即可

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6: 更改为超户身份:
admin users = westos
##以westos用户建立的文件,身份为超户,组身份不变

服务端:
    vim /etc/samba/smb.conf
       [WESTOS]                  
       comment = Share Directory
       path = /wesos_smb
       admin users = westos    
    systemctl restart smb.service
 测试:
客户端 
     mount //172.25.254.112/WESTOS /mnt -o username=westos,password=westos
     cd /mnt
     touch file4
     ls
     file4
     ll
    total 0
    -rw-r--r--. 1 root westos 0 Aug 13 03:25 file4 ##用户为root 组为服务端的挂载用户组,组身份依然是westos

vim /etc/samba/smb.conf在这里插入图片描述
systemctl restart smb.service
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

实现smb多用户挂载

 客户端设置:
1:yum install -y cifs-utils.x86_64   ##安装客户端samab认证程序,实现多用户挂载的服务
  man mount.cifs ##可以查看cifs系统的挂载策略
2: vim /root/smbpasswd   ##smb挂载用户身份的一个认证文件,根据挂载规则编写认证所需的文件
   username=westos  ##存在的用户和密码
   password=westos
3 :chmod 600 /root/smbpasswd	修改权限只对所有人可读,保护登陆的用户密码
   ls -l /root/smbpassword
4: mount //172.25.254.112/WESTOS /mnt -o credentials=/root/smbpasswd 

(1)在这里插入图片描述
2: vim /root/smbpasswd
在这里插入图片描述
(3)在这里插入图片描述
(4)在这里插入图片描述

以文件登陆,可以保护登陆的用户名和密码,但是普通用户依然可以读取超户挂载登陆的目录

 切换普通用户,可以查看
 mount //172.25.254.112/WESTOS /mnt -o credentials=/root/smbpasswd,sec=ntlmssp
 切换普通用户,依然可以查看
 mount //172.25.254.112/WESTOS /mnt -o credentials=/root/smbpasswd,sec=ntlmssp,multiuser
5: cd /mnt
   ls 
6: su - student
   cd /mnt/
   ls   //无法查看 ,必须指定用户挂载通过smb认证才可以查看 
   cifscreds --help          //查看相关命令 
7:在普通用户下
   su - student:
   cifscreds add -u lee 172.25.254.112      //需要通过smb认证
8: cd /mnt/
   ls       //此时可以查看mnt下面的文件
   touch file      可以创建文件,因为/westos_smb的权限为777 

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

 详解:
   credentials=filename ##指定原始的认证
   credentials=/root/smbpasswd ##文件指定的用户名、密码,有安全性,没有把密码爆漏在外面
   sec=ntlmssp               ##默认认证方式是ntlmssp;
   rpm -ql | grep samba      ##为查询方式
   multiuser                 ##为多用户挂载
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值