LINUX下CIFS和NFS文件系统部署

第一种:CIFS文件管理系统

一、什么是samba?

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。SMB后来也被微软称为CIFS,即公共internet文件系统。
SMB不仅被用于linux与windows之间的文件共享和打印共享,也可以用户linux与linux之间的在资源共享,由于NFS(网络文件系统),可以更好的完成LINUX与LINUX之间的数据共享。
组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话,验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口

二、samba服务的安装

[root@server ~]# yum  install samba samba-common  samba-client  -y   #安装samba服务,
samba:这个套件主要包含了 SAMBA 的主要 daemon档案 ( smbd 及 nmbd )、 SAMBA 的文件档 ( document )、以及其它与 SAMBA 相关的logrotate 设定文件及开机预设选项档案等;
samba-common:这个套件则主要提供了 SAMBA 的主要设定档(smb.conf) 、 smb.conf 语法检验的测试程序 ( testparm )等等;
samba-client:这个套件则提供了当 Linux 做为SAMBA Client 端时,所需要的工具指令,例如挂载 SAMBA 档案格式的执行档 smbmount等等。

已加载插件:langpacks
软件包 samba-common-4.1.1-31.el7.x86_64 已安装并且是最新版本
正在解决依赖关系
--> 正在检查事务
---> 软件包 samba.x86_64.0.4.1.1-31.el7 将被 安装
---> 软件包 samba-client.x86_64.0.4.1.1-31.el7 将被 安装
--> 解决依赖关系完成

依赖关系解决
................此处省略

完毕!
[root@server ~]# systemctl  start smb  #打开samba服务
[root@server ~]# systemctl enable smb  #开机时自动重启samba服务
ln -s '/usr/lib/systemd/system/smb.service' '/etc/systemd/system/multi-user.target.wants/smb.service'
[root@server ~]# rpm -qa | grep samba  #查看有关samba服务的安装包
samba-client-4.1.1-31.el7.x86_64  #客户端软件,主要提供linux主机作为客户端时,所需要的工具指令
samba-4.1.1-31.el7.x86_64 #服务器端软件,主要提供samba服务器的守护程序,共享文档,日志的轮替,开机默认选项
samba-common-4.1.1-31.el7.x86_64 #主要提供samba服务器的设置文件与设置文件语法检验程序
samba-libs-4.1.1-31.el7.x86_64
如果出现上面四个安装包,说明配置完成,否则,需要重新安装,执行命令:yum install samba samba-common  samba-client  -y  (-y的意思是直接安装,不需要进行交互式)
[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'

使用Samba服务器需要防火墙开放以下端口
UDP 137
UDP 138
TCP 139
TCP 445

[root@server ~]# netstat -antlupe | grep smb #查看年samba服务的网络端口
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      0          49797      2753/smbd           
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      0          49798      2753/smbd           
tcp6       0      0 :::445                  :::*                    LISTEN      0          49795      2753/smbd           
tcp6       0      0 :::139                  :::*                    LISTEN      0          49796      2753/smbd           

实例

安装samba服务

开启samba服务这里写图片描述
关闭防火墙
这里写图片描述
检测,匿名用户登陆samba服务的信息进行查看,不能进行其他的操作
当Linux 主机想要藉由『网络上的芳邻』的功能来查看别台计算机所分享出来的目录与装置时,就可以使用smbclient 来查看啦!这个指令也可以使用在 SAMBA 主机上面,用来查看是否设定成功。

[root@client ~]# smbclient -L //172.25.254.218
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
    ---------            -------

三、添加sam用户

smbpasswd:如果SAMBA 设定的较为严格,需要规定使用者的账号与密码,那么那个密码档案的建立就需要使用smbpasswd 来建置才可以,所以这个指令与建立 SAMBA 的密码有关

smbpasswd [options] [username]  #smbpasswd的使用格式
  -a                   添加用户
  -d                   永久关闭用户
  -e                   永久开启用户
  -i                   信任网域帐号
  -m                   信任计算机帐号
  -n                   没有密码设置
  -W                   使用stdin ldap管理密码
  -w PASSWORD          ldap管理员密码
  -x                   删除用户
  -R ORDER             名字解析顺序

添加用户

[root@server ~]# smbpasswd -a student #添加sam用户student
New SMB password: #输入密码
Retype new SMB password: #请再次输入密码
Added user student. #sam用户student添加成功
[root@server ~]# pdbedit -L  #查看sam用户的信息
student:1000:Student User 
[root@server ~]# useradd  westos #建立westos用户
[root@server ~]# smbpasswd -a westos #添加westos用户为sam用户
New SMB password: #请输入密码
Retype new SMB password: #请再次输入密码
Added user westos.
[root@server ~]# pdbedit -x student  #删除sam下的student用户
[root@server ~]# pdbedit -L #查看sam用户的信息,pdbedit 管理SAM数据库(Samba用户数据库)
#-a 用户名 建立 Samba 账户
#-x 用户名 删除 Samba 账户
#-L 列出账户列表
#-Lv 列出账户详细信息的列表
westos:1001:  #由此可以看出student用户已经从sam用户中被删除


实例

添加sam用户student
这里写图片描述
查看sam用户的信息
这里写图片描述
在本机上添加westos用户
这里写图片描述
添加sam用户westos
这里写图片描述
从sam用户中删除student用户
这里写图片描述
查看sam用户的相关信息
这里写图片描述
重新添加student用户到sam用户中
这里写图片描述
查看student用户是否已经成功添加到sam用户中去
这里写图片描述
在客户端进行登陆samba服务中的student用户,查看是否添加student成功,

[root@client ~]# smbclient -L //172.25.254.218  -U student #-U :指定具体的用户 
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  #由这一行我们可以看出samba服务添加student用户成功
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]

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

    Workgroup            Master
    ---------            -------

四、在selinux中设定smb用户可以访问自己的家目录

[root@server ~]# getsebool -a | grep smb  #查看smb的相关信息 
smbd_anon_write --> off #sam匿名用户可写服务关闭
[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 #打开sam用户可以访问自己的家目录的端口
[root@server ~]# getsebool -a | grep samba #查看是否已经打开
samba_create_home_dirs --> off
samba_domain_controller --> off
samba_enable_home_dirs --> on #on代表已经打开
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

实例

查看有关smb的布尔值
这里写图片描述
查看有关samba的布尔值
这里写图片描述
设定sam用户访问自己加目录的端口开启
这里写图片描述
查看允许访问用户家目录的端口是否已经打开
这里写图片描述
在客户端进行查看

[root@client ~]# smbclient  //172.25.254.218/student   -U student #登陆 samba服务的student用户,进行查看家目录下的信息
Enter student's password:  #请输入密码
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls #查看家目录下的信息,可以进行下载,但不能进行创建,删除等操作
  .                                   D        0  Mon Jun  4 08:32:19 2018
  ..                                  D        0  Mon Jun  4 07:22:38 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        40913 blocks of size 262144. 28585 blocks available
smb: \> 
 19:06:53 2014

五、黑白名单的设定

(1)白名单的设定:在白名单内的可以允许登陆samba服务,其他不允许

[root@server ~]# vim /etc/samba/smb.conf  #编辑samba服务的配置文件
 89         workgroup = WESTOS #修改工作组即域名为westos
 99         hosts allow = 172.25.254.118 #只允许172.25.254.218这台主机进行登陆samba服务
[root@server ~]# systemctl restart smb #重新启动samba服务

验证
在172.25.254.218这台主机上进行测试
这里写图片描述
在172.25.254.118这台主机上进行测试
这里写图片描述
在172.25.254.60这台主机上进行测试
这里写图片描述

(2)黑名单的设定:黑名单里的主机不能访问samba服务,其他主机都可以进行访问,

[root@server ~]# vim /etc/samba/smb.conf  #编辑配置文件
 99         hosts deny = 172.25.254.118 #不允许172.25.254.118这台主机进行访问,其他主机都可以进行访问,

[root@server ~]# systemctl restart smb #重启服务

测试
1)在172.25.254.228这台主机上进行测试
这里写图片描述
在172.25.254.118这台主机上进行测试
这里写图片描述
在172.25.254.60这台主机上进行测试
这里写图片描述

(3)黑白名单同时存在,取决于白名单

[root@server ~]# vim /etc/samba/smb.conf  #编辑samba服务的配置文件

 99         hosts deny = 172.25.254.118 #黑名单里有172.25.254.118这台主机
100 
101         hosts allow = 172.25.254.118 #白名单里有172.25.254.118这台主机
[root@server ~]# systemctl restart smb #重新启动服务

测试
(1)在172.25.254.118这台主机上进行测试
这里写图片描述
(2)在172.25.254.60这台主机上进行测试
这里写图片描述

六、samba服务共享目录

(1)允许共享新建的目录

[root@server ~]# mkdir  /westos #建立目录/westos
[root@server ~]# touch /westos/file /在/westos目录下建立文件file
[root@server ~]# vim /etc/samba/smb.conf #编辑samba服务的配置文件
321         [DIR] ##指定共享目录
322         comment = westos dir ##注释
323         path = /westos  #路径

[root@server ~]# systemctl restart smb #重启服务

在172.25.254.118这台主机上进行测试

[root@client ~]# smbclient -L  //172.25.254.218 #登陆172.25.254.218这台主机
Enter root's password:  #请输入密码
Anonymous login successful
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]

    Sharename       Type      Comment
    ---------       ----      -------
    DIR             Disk      westos dir #目录已经被分享
    IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
Anonymous login successful
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]

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

    Workgroup            Master
    ---------            -------

2)设置并允许对目录里的内容进行 访问

[root@server ~]# vim /etc/samba/smb.conf  # 编辑配置文件
293         guest ok = yes #匿名用户可以登陆
296         map to guest = bad user
[root@server ~]# systemctl restart smb #重启服务
root@server ~]# semanage  fcontext  -a  -t  samba_share_t  '/westos(/.*)?' #将/smbshare 的安全上下文修改为 samba_share_t 
[root@server ~]# restorecon  -FvvR /westos/ #更新目录安全上下文

检测

[root@client ~]# smbclient    //172.25.254.218/DIR -U  student
Enter student's password: 
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
  .                                   D        0  Wed Jun  6 09:25:14 2018
  ..                                  D        0  Wed Jun  6 09:25:05 2018
  file                                N        0  Wed Jun  6 09:25:14 2018

        40913 blocks of size 262144. 28458 blocks available

(3)设定是否允许访问DIR目录

[root@server ~]# vim /etc/samba/smb.conf #编辑samba服务的配置文家
325         browseable = no  #设置不允许访问DIR
[root@server ~]# systemctl restart smb #重启服务

测试:不允许访问DIR目录

[root@client ~]# smbclient -L  //172.25.254.218/DIR
Enter root's password: 
Anonymous login successful
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]

    Sharename       Type      Comment
    ---------       ----      -------
    IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
Anonymous login successful
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]

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

    Workgroup            Master
    ---------            -------

若配置文件/etc/samba/smb.conf中修改为下图的样子,那么可以访问DIR目录

325         browseable = yes  #设置允许访问DIR

测试

[root@client ~]# smbclient -L  //172.25.254.218/DIR
Enter root's password: 
Anonymous login successful
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]

    Sharename       Type      Comment
    ---------       ----      -------
    DIR             Disk      westos dir
    IPC$            IPC       IPC Service (Samba Server Version 4.1.1)
Anonymous login successful
Domain=[WESTOS] OS=[Unix] Server=[Samba 4.1.1]

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

    Workgroup            Master
    ---------            -------

(4)samba服务的其他的权限

324       browseable = yes        #此权限若为no 则无法访问 DIR
325       writable = yes          #允许所有人可写(前提是对DIR有写的权限)
326       #write list = +staff    
          #允许指定用户或用户组可写(前提是该用户或者用户组对DIR有写的权限)
          #后直接跟用户名称,若有+(@) 表示用户组
327       admin users = student #指定 smb 服务的访问管理用户

七、挂载

(1)临时挂载

临时挂载samba服务中的student到/mnt目录下,那么在登陆时samba服务的student用户时,可以访问到家目录下会出现/mnt下所有内容

[root@client ~]# mount  //172.25.254.218/student  /mnt/ -o username=student,password=lee #临时挂载samba服务的student用户下到/mnt下
[root@client ~]# df #查看是否已经挂载
文件系统                    1K-块    已用    可用 已用% 挂载点
/dev/vda1                10473900 3186732 7287168   31% /
devtmpfs                   469344       0  469344    0% /dev
tmpfs                      484932      80  484852    1% /dev/shm
tmpfs                      484932   12764  472168    3% /run
tmpfs                      484932       0  484932    0% /sys/fs/cgroup
/dev/mapper/vg0-vo         483670    2356  451823    1% /home
//172.25.254.218/student 10473900 3156092 7317808   31% /mnt #由这一行我们可以看出//172.25.254.218/student这台主机已经挂载在/mnt下,

创建文件,并进行验证上述的结论是否为正确的


[root@client ~]# touch  /mnt/file{1..5}   在/mnt下创建file1-5个文件,此时创建的真实路径并不是在/mnt下
[root@client ~]# ls /mnt #查看创建的文件是否存在
file1  file2  file3  file4  file5

登陆samba服务中的student用户,并进行查看刚才创建的文件是否存在。由下图可以看出/mnt下创建的文件自动的传送到student用户的家目录下

[root@client ~]# smbclient  //172.25.254.218/student   -U student #登陆samba服务中的student用户
Enter student's password:  #请输入密阿曼
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls
  .                                   D        0  Tue Jun  5 06:15:35 2018
  ..                                  D        0  Mon Jun  4 07:22:38 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
  file1                               N        0  Tue Jun  5 06:15:35 2018
  file2                               N        0  Tue Jun  5 06:15:36 2018
  file3                               N        0  Tue Jun  5 06:15:36 2018
  file4                               N        0  Tue Jun  5 06:15:36 2018
  file5                               N        0  Tue Jun  5 06:15:36 2018      

        40913 blocks of size 262144. 28583 blocks available 
smb: \> 

在server这台主机上进行,查找创建的文件的真实路径

[root@server ~]# cd  /home/student/ #切换到家目录下的student用户中
[root@server student]# ls #查询创建的文件是否存在
file1  file2  file3  file4  file5 #由此可以看出我们刚才在/mnt下创建的文件,通过挂载的方式,实现了CIFS文件的共享

永久挂载

[root@client ~]# vim /etc/fstab  #编辑挂载的配置文件
**编辑的内容**
//172.25.254.218/student  /mnt cifs  defaults,username=student,password=lee   0 0 

[root@client ~]# mount -a #挂载
[root@client ~]# df #查看挂载的状态
文件系统                    1K-块    已用    可用 已用% 挂载点
/dev/vda1                10473900 3186752 7287148   31% /
devtmpfs                   469344       0  469344    0% /dev
tmpfs                      484932      80  484852    1% /dev/shm
tmpfs                      484932   12764  472168    3% /run
tmpfs                      484932       0  484932    0% /sys/fs/cgroup
/dev/mapper/vg0-vo         483670    2356  451823    1% /home
//172.25.254.218/student 10473900 3156720 7317180   31% /mnt  #由这一行我们可以看出挂载成功
[root@client ~]# getenforce #查看SELINUX的状态
Enforcing   #由这一行我们可以看出SELINUX的状态处于强制模式 

进行验证是否通过挂载的方式实现文件共享

[root@client ~]# touch  /mnt/test #创建文件test
[root@client ~]# ls /mnt #查看/mnt下是否由文件test
test

未挂载前

[root@client ~]# smbclient  //172.25.254.218/student   -U student #登陆student用户
Enter student's password:  #请输入密码
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls #进行查看student用户的家目录下的相关信息
  .                                   D        0  Wed Jun  6 05:59:03 2018
  ..                                  D        0  Mon Jun  4 07:22:38 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. 28580 blocks available
smb: \> ^C

挂载后

[root@client ~]# smbclient  //172.25.254.218/student   -U student #登陆用户
Enter student's password:  #请输入密码
Domain=[MYGROUP] OS=[Unix] Server=[Samba 4.1.1]
smb: \> ls #查看west文件是否成功共享
  .                                   D        0  Wed Jun  6 05:59:57 2018
  ..                                  D        0  Mon Jun  4 07:22:38 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
  test                                N        0  Wed Jun  6 05:59:57 2018   #由这一行可以看出文件共享成功

        40913 blocks of size 262144. 28580 blocks available
smb: \> 

(3)多用户的挂载

[root@client ~]# yum install cifs-utils -y #安装软件
Loaded plugins: langpacks
Resolving Dependencies
--> Running transaction check
---> Package cifs-utils.x86_64 0:6.2-6.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

================================================================================
 Package             Arch            Version            Repository         Size
================================================================================
Installing:
 cifs-utils          x86_64          6.2-6.el7          rhel_dvd           83 k

Transaction Summary
================================================================================
Install  1 Package

Total download size: 83 k
Installed size: 174 k
Downloading packages:
cifs-utils-6.2-6.el7.x86_64.rpm                            |  83 kB   00:00     
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Installing : cifs-utils-6.2-6.el7.x86_64                                  1/1 
  Verifying  : cifs-utils-6.2-6.el7.x86_64                                  1/1 

Installed:
  cifs-utils.x86_64 0:6.2-6.el7                                                 

Complete!
[root@client ~]# vim /root/smbpass  #编辑smbpass文件
编辑内容
username=student #samba服务的student用户
passwd=lee  #student用户密码

[root@client ~]# umount /mnt/  卸载/mnt
[root@client ~]# df  #查看挂载的状态
Filesystem         1K-blocks    Used Available Use% Mounted on
/dev/vda1           10473900 3196652   7277248  31% /
devtmpfs              469344       0    469344   0% /dev
tmpfs                 484932     140    484792   1% /dev/shm
tmpfs                 484932   12792    472140   3% /run
tmpfs                 484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo    483670    2339    451840   1% /home
[root@client ~]# mount -o credentials=/root /smbpass,sec=ntlmssp,multiuser  //172.25.254.218/DIR  /mnt #为了全起见,设置sam多用户挂载加密。 指定包含用户名和/或密码以及可选工作组名称的文件。该文件的格式为:
                         username=value   #用户名
                         password=value   #密码
                         domain=value     #域名
这比在共享文件(如/etc/ fstabst)中使用明文密码要好。确保正确地保护任何凭证文件。
sec=ntlmssp
        安全模式设置为 ntlmssp ,此模式选择看版本,
   在v3.8之前,主线内核版本的默认值是sec=ntlm。在v3.8中,默认设置为sec=ntlmssp。
   multiuser  多用户模式

[root@client ~]# df  #查看是否已经挂载
Filesystem           1K-blocks    Used Available Use% Mounted on
/dev/vda1             10473900 3196652   7277248  31% /
devtmpfs                469344       0    469344   0% /dev
tmpfs                   484932     140    484792   1% /dev/shm
tmpfs                   484932   12792    472140   3% /run
tmpfs                   484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo      483670    2339    451840   1% /home
//172.25.254.218/DIR  10473900 3153380   7320520  31% /mnt  #由这一行可以看出已经挂载成功
[root@client ~]# cd  /mnt  #切换到/mnt目录下
[root@client ~]# touch  /mnt/file{1..4} #在/mnt目录下创建文件file1到file4
[root@client ~]# ls /mnt/  #查看是否已经创建成功
file1  file2  file3  file4
[root@client mnt]# useradd linux  #添加用户linux
[linux@client ~]$ cd  /mnt #切换到/mnt目录下
[linux@client mnt]$ ls  #此时没有权限查看
ls: reading directory .: Permission denied 
[linux@client mnt]$ cifscreds add -u westos  172.25.254.218  #此后切换用户后,无法对smb进行查看,需要进行认证,通过 cifscreds
cifscreds 在内核密钥环中管理NTLM凭据
在另一用用户下执行:
cifscreds add [-u 用户名]  smb主机IP
Password: 输入密码
[linux@client mnt]$ ls #然后 再进行/mnt的内容
file1  file2  file3  file4

八、匿名用户如何访问

[root@localhost ~]# vim /etc/samba/smb.conf  #编辑samba服务的配置文件
            guest ok = yes  #允许匿名用户可以访问,
125         map to guest = bad user # #即让系统识别guest用户身份,为匿名用户

         [DIR] 
        comment= westos dir #指定共享目录
        path =/westos   #注释   
        browseable = no  #是否允许浏览
       # writable = yes   #是否可写
        write list = @student ##允许写的名单
        admin users = westos  #指定 smb 超级用户


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

客户端

[root@client ~]# umount  /mnt/ #卸载/mnt
[root@client ~]# df #查看挂载的状态
Filesystem         1K-blocks    Used Available Use% Mounted on
/dev/vda1           10473900 3196672   7277228  31% /
devtmpfs              469344       0    469344   0% /dev
tmpfs                 484932     140    484792   1% /dev/shm
tmpfs                 484932   12792    472140   3% /run
tmpfs                 484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo    483670    2356    451823   1% /home
[root@client ~]# mount  //172.25.254.218/DIR  /mnt -o username=guest,password=""  #挂载//172.25.254.218/DIR到/mnt 目录下,指定用户和密码
[root@client ~]# df #查看挂载的状态
Filesystem           1K-blocks    Used Available Use% Mounted on
/dev/vda1             10473900 3196672   7277228  31% /
devtmpfs                469344       0    469344   0% /dev
tmpfs                   484932     140    484792   1% /dev/shm
tmpfs                   484932   12792    472140   3% /run
tmpfs                   484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo      483670    2356    451823   1% /home
//172.25.254.218/DIR  10473900 3157396   7316504  31% /mnt #已经成功挂载
[root@client ~]# ls /mnt
file1  file2  file3  file4
[root@client ~]# touch  /mnt/file5  #创建文件没有权限
touch: cannot touch ‘/mnt/file5’: Permission denied

服务端
此时修改smb的配置文件

[root@localhost ~]# vim /etc/samba/smb.conf 
327        # write list = @student

客户端

[root@client ~]# touch  /mnt/file5 #重新创建文件
[root@client ~]# ls /mnt
file1  file2  file3  file4  file5

第二种:nfs文件系统管理

NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。

1)安装nfs文件系统、文件同步并且只读

[root@localhost ~]# yum install nfs  #安装nfs的安装包
Loaded plugins: langpacks
No Match for argument: nfs
Error: Nothing to do
[root@localhost ~]# systemctl start nfs #打开nfs服务
[root@localhost ~]# systemctl status nfs #查看nfs服务的状
[root@localhost ~]# systemctl stop firewalld #关闭防火墙
[root@localhost ~]# vim /etc/exports  #编辑配置文件
/mnt  *(sync,ro) #对/mnt下的所有内容同步并且只读(ro)
sync   同时将数据写入到内存与硬盘中,保证不丢失数据
async  优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据

[root@localhost ~]# exportfs -rv  #进行刷新
exporting *:/mnt

客户端

[root@client ~]# umount  /mnt/ 卸载/mnt
[root@client ~]# mount 172.25.254.218:/mnt/  /mnt/ #挂载172.25.254.218:/mnt到/mnt目录下
[root@client ~]# cd  /mnt/ #切换到/mnt下
[root@client mnt]# ls  #查看目录下是否由文件
[root@client mnt]# touch file1 #创建file1文件
touch: cannot touch ‘file1’: Read-only file system #由这一行可以看出文件系统处于只读模式

实例

安装nfs文件系统安装包
这里写图片描述
打开nfs服务,并显示nfs服务的状态,
由下图绿色部分可以看出,nfs服务已经打开
这里写图片描述
编辑exports文件
这里写图片描述

这里写图片描述
进行刷新
这里写图片描述
在客户端进行挂载
这里写图片描述
修改主机名称
这里写图片描述
查看挂载的状态,由下图可以看出挂载成功
这里写图片描述
测试:文件系统是否只读同步
由下图可以看出,无法在/mnt下创建文件,因为nfs是一个只读文件系统
这里写图片描述

(2)文件读写,同步

服务端

[root@localhost ~]# vim /etc/exports #编辑文件内容
/mnt  *(sync,rw) #/mnt下的所有内容进行同步并且读写

[root@localhost ~]# exportfs -rv #进行刷新
exporting *:/mnt

客户端

[root@client mnt]# touch file1 #创建文件
[root@client mnt]# ll /mnt #查看是否创建成功
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jun  2 04:47 file1 #表示创建成功

测试:
在我第一次创建文件时,显示权限不够,原因是在server这台主机里,只有自己才能在/mnt下的执行其他操作,其他人是不允许创建的,此时我们应考虑修改server这台主机里/mnt目录的权限
这里写图片描述
修改权限
这里写图片描述
重新创建文件测试是否成功
这里写图片描述
查看/mnt下的文件,由下图可以看文件file1所属的用户组都为nfs文件系统默认的组和用户
这里写图片描述

(3)修改文件所属用户和组为超级用户

服务端

[root@localhost ~]# vim /etc/exports #编辑配置文件
/mnt  *(sync,rw,no_root_squash) #/mnt下的所有内容进行同步读写,no_root_squash  当 NFS 客户端以 root 管理员访问时,映射为 NFS 服务器的 root 管理员
[root@localhost ~]# exportfs -rv #刷新
exporting *:/mnt

客户端

[root@client mnt]# touch /mnt/file2 #创建文件file2
[root@client mnt]# ll
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jun  2 04:47 file1
-rw-r--r-- 1 root      root      0 Jun  2 04:51 file2 #由此可以看出文件所属的用户和组都为root

测试
这里写图片描述

(4)修改文件所属的用户和组为指定用户的组和用户

服务端

[root@localhost ~]# vim /etc/exports #编辑配置文件
/mnt  *(sync,rw,anonuid=1000,anongid=1000) 
#共享目录    对所有用户共享(同步数据,读写权限,允许用户的用户ID,组ID)
[root@localhost ~]# exportfs -rv #进行刷新
exporting *:/mnt

客户端

[root@client mnt]# touch file3 #在/mnt目录下创建文件file3
[root@client mnt]# ll #查看是否已经存在file3文家
total 0
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jun  2 04:47 file1
-rw-r--r-- 1 root      root      0 Jun  2 04:51 file2
-rw-r--r-- 1 student   student   0 Jun  2 04:57 file3 #此时文件所属的组和用户已经被修改成uid=1000,gid=1000的student用户和student组

测试
这里写图片描述

(5)对指定的主机赋予不同的权限**

对172.25.254.118主机只赋予同步的权限,
对172.25.254.60主机赋予同步和读写的权限

[root@localhost ~]# vim /etc/exports #编辑配置文件
/mnt  *(sync,rw,anonuid=1000,anongid=1000)
/westos 172.25.254.0/24(sync) 172.25.254.48(sync,rw)
# /westos 172.25.254.0/24(sync),对/westos目录下,只要是在172.25.254.0的网段,只允许同步,对172.25.254.48这台主机赋予文件同步并且读写的权限

[root@localhost ~]# exportfs -rv #刷新
exporting 172.25.254.48:/westos
exporting 172.25.254.0/24:/westos
exporting *:/mnt

172.25.254.118这台主机进行测试

[root@client ~]# umount /mnt/ #卸载/mnt下的东西
[root@client ~]# mount 172.25.254.218:/westos/  /mnt/ #挂载172.25.254.218:/westos目录到/mnt下
[root@client ~]# df #查看挂载的状态
Filesystem             1K-blocks    Used Available Use% Mounted on
/dev/vda1               10473900 3196688   7277212  31% /
devtmpfs                  469344       0    469344   0% /dev
tmpfs                     484932     140    484792   1% /dev/shm
tmpfs                     484932   12796    472136   3% /run
tmpfs                     484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo        483670    2356    451823   1% /home
172.25.254.218:/westos  10473984 3157248   7316736  31% /mnt #由这一行可以看出挂载成功
[root@client ~]# touch /mnt/file7 #创建文件时,没有权限
touch: cannot touch ‘/mnt/file7’: Read-only file system

在172.25.254.48这台主机上进行测试

[root@foundation48 ~]# mount 172.25.254.218:/westos/  /mnt/ #挂载172.25.254.218这台 主机的/westos目录到 /mnt 下
[root@foundation48 ~]# df #查看是否挂载成功
Filesystem             1K-blocks    Used Available Use% Mounted on
/dev/sda3              307974224 5878160 302096064   2% /
devtmpfs                 1868076       0   1868076   0% /dev
tmpfs                    1881152     488   1880664   1% /dev/shm
tmpfs                    1881152    9012   1872140   1% /run
tmpfs                    1881152       0   1881152   0% /sys/fs/cgroup
/dev/sda1                 505580  149360    356220  30% /boot
tmpfs                     376232      20    376212   1% /run/user/1000
172.25.254.218:/westos  10473984 3157248   7316736  31% /mnt #此时挂载成功
[root@foundation48 ~]# touch /mnt/file7 #创建file7文件
[root@foundation48 ~]# ll /mnt/ #查看是否已经创建
total 0
-rw-r--r-- 1 kiosk     kiosk     0 Jun  2 15:41 file1
-rw-r--r-- 1 kiosk     kiosk     0 Jun  2 15:41 file2
-rw-r--r-- 1 kiosk     kiosk     0 Jun  2 15:41 file3
-rw-r--r-- 1 kiosk     kiosk     0 Jun  2 15:41 file4
-rw-r--r-- 1 nobody    nobody    0 Jun  2 16:34 file5
-rw-r--r-- 1 nfsnobody nfsnobody 0 Jun  2 17:06 file7

(6)网络文件的自动挂载与卸载

服务端:重新启动nfs服务

[root@localhost ~]# vim  /etc/exports #编辑配置文件
编辑内容
westos 172.25.254.0/24(sync,rw,no_root_squash) #在172.25.254这个网段对westos目录进行同步 ,可写,修改组为root
root_squash    当 NFS 客户端以 root 管理员访问时,映射为 NFS 服务器的匿名用户
all_squash  同时将数据写入到内存与硬盘中,保证不丢失数据
sync   同时将数据写入到内存与硬盘中,保证不丢失数据
async  优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
/westos 172.25.254.0/24(sync)
[root@localhost ~]# exportfs  -rv #刷新
exporting 172.25.254.0/24:/westos
[root@localhost ~]# getenforce #查看selinux的状态
Enforcing
[root@localhost ~]# systemctl start nfs  #开启nfs服务
[root@localhost ~]# systemctl status nfs #查看nfs服务 是否开启
nfs-server.service - NFS Server
   Loaded: loaded (/usr/lib/systemd/system/nfs-server.service; disabled)
   Active: active (exited) since Sat 2018-06-02 21:30:47 EDT; 1s ago
.............

@客户端

[root@client mnt]# yum install  autofs -y  #首先安装autofs自动挂载的安装包    
[root@client ~]# vim  /etc/sysconfig/autofs  #编辑配置文件,设定挂载的时间
13 TIMEOUT=5  #自动挂载时间设置为5s,默认情况下为300s

[root@client ~]# systemctl restart autofs.service #重新启动服务

[root@client ~]# cd /net/ #切换到/net下
[root@client net]# ls #查看,此时net目录下没有任何内容
[root@client net]# cd 172.25.254.218 #此时切换到172.25.254.218
[root@client 172.25.254.218]# ls
westos #此时在172.25.254.218目录下查看有westos目录
[root@client 172.25.254.218]# cd westos/ #切换到westos目录下
[root@client westos]# ls #查看westos目录下的文件
file1  file2  file3  file4  file5  
[root@client westos]# pwd #显示当前路径
/net/172.25.254.218/westos
[root@client westos]# df #查看挂载的状态
Filesystem             1K-blocks    Used Available Use% Mounted on
/dev/vda1               10473900 3200892   7273008  31% /
devtmpfs                  469344       0    469344   0% /dev
tmpfs                     484932      80    484852   1% /dev/shm
tmpfs                     484932   12768    472164   3% /run
tmpfs                     484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo        483670    2356    451823   1% /home
172.25.254.218:/westos  10473984 3155840   7318144  31% /net/172.25.254.218/westos #已经成功i挂载

[root@client ~]# df #切换到跟目录下时,查看挂载的状态,由下面信息可以看出,刚才挂载的内容已经自动卸载 
Filesystem         1K-blocks    Used Available Use% Mounted on
/dev/vda1           10473900 3200900   7273000  31% /
devtmpfs              469344       0    469344   0% /dev
tmpfs                 484932      80    484852   1% /dev/shm
tmpfs                 484932   12768    472164   3% /run
tmpfs                 484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo    483670    2356    451823   1% /home

如果不能用showmount 挂在,并且切换到cd 172.25.254.218服务端的,目录下时报错,没有文件或目录,此时应考虑nfs服务是否重启动,
showmount #显示NFS服务器的挂载信息
-e #显示 NFS 服务器的共享列表
-a #显示本机挂载的文件资源的情况
-v #显示版本

实例

服务端

创建目录westos及其file文件
这里写图片描述
这里写图片描述
编辑配置文件并且刷新
这里写图片描述
编辑的内容如下
这里写图片描述
查看SELINUX的布尔值即SELINUX的状态
这里写图片描述

打开nfs服务,并且查看是否开启
这里写图片描述

客户端

安装nfs自动挂载的安装包
这里写图片描述
这里写图片描述
编辑自动挂载的配置文件
这里写图片描述
13 TIMEOUT=5

重新启动服务
这里写图片描述
进行临时自动挂载,这里要注意的是只要我们在使用westos目录,那么它就会一直挂载,
这里写图片描述
westos的真实路径
这里写图片描述
查看挂载的状态
这里写图片描述

退出不使用时间足够5s时,那么自动卸载
这里写图片描述

(7)只读自动挂载

[root@client ~]# vim  /etc/auto.master
8 /nfs    /etc/auto.westos
#/nfs 挂载的上一层目录
#auto.westos名字任意
[root@client ~]# vim  /etc/auto.westos  编辑auto.westos文件
westos -ro 172.25.254.218:/westos
#挂载的具体位置 参数 id:/具体目录下的文件

[root@client ~]# systemctl restart autofs.service  #重新启动服务
[root@client ~]# cd  /nfs/  #进入上层目录
[root@client nfs]# ls 查看nfs目录下是否有文件或目录
[root@client nfs]# cd westos #进入挂载目录
[root@client westos]# df #查看是否已经进行挂在,由下面信息可以看出
Filesystem             1K-blocks    Used Available Use% Mounted on
/dev/vda1               10473900 3200904   7272996  31% /
devtmpfs                  469344       0    469344   0% /dev
tmpfs                     484932      80    484852   1% /dev/shm
tmpfs                     484932   12768    472164   3% /run
tmpfs                     484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo        483670    2356    451823   1% /home
172.25.254.218:/westos  10473984 3155840   7318144  31% /nfs/westos #由这一行可以看出已经成功挂载
[root@client ~]# mount  #查看挂载的信息
....此处省略
172.25.254.218:/westos on /nfs/westos type nfs4 (ro,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.25.254.118,local_lock=none,addr=172.25.254.218)

实例
编辑/etc/auto.westos文件,并编辑文件内容
这里写图片描述

 8 /nfs    /etc/auto.westos

编辑/etc/auto.westos文件
这里写图片描述

westos -ro 172.25.254.218:/westos

查看磁盘的挂载状态
这里写图片描述
重新启动服务
这里写图片描述
切换到/nfs/westos目录下,进行使用时自动挂载,由下图可以看出/westos目录下有5个文件
这里写图片描述
查看磁盘的挂载状态//172.25.254.218:/westos挂载到/nfs/westos目录下
这里写图片描述
查看磁盘的挂载状态
这里写图片描述
磁盘的信息如下
这里写图片描述
创建文件file6时,此时报错,说file6无法创建,因为nfs是一个只读的文件系统
这里写图片描述

(8)读写自动挂载到指定目录下

[root@client ~]# vim  /etc/auto.westos  #编辑自动挂载的文件
westos -rw  172.25.254.218:/westos #对westos目录及其目录里的内容进行读写,在172.25.254.218这台主机上的/westos目录下
[root@client ~]# systemctl restart  autofs.service  #重新启动服务
[root@client ~]# cd /nfs #切换到nfs服务的目录下
[root@client nfs]# ls #查看目录下的信息,此时nfs目录下没有任何东西
[root@client nfs]# cd  westos #切换到westos目录下,另一曾含义就是挂载
[root@client westos]# ls #查看westos目录下的文件内容
file1  file2  file3  file4  file5 
[root@client westos]# df
Filesystem             1K-blocks    Used Available Use% Mounted on
/dev/vda1               10473900 3200904   7272996  31% /
devtmpfs                  469344       0    469344   0% /dev
tmpfs                     484932      80    484852   1% /dev/shm
tmpfs                     484932   12768    472164   3% /run
tmpfs                     484932       0    484932   0% /sys/fs/cgroup
/dev/mapper/vg0-vo        483670    2356    451823   1% /home
172.25.254.218:/westos  10473984 3155840   7318144  31% /nfs/westos
[root@client ~]# mount #查看挂载的信息
.............
172.25.254.218:/westos on /nfs/westos type nfs4 (rw,relatime,vers=4.0,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,port=0,timeo=600,retrans=2,sec=sys,clientaddr=172.25.254.118,local_lock=none,addr=172.25.254.218)

验证测试

猜你喜欢

转载自blog.csdn.net/dhjibk/article/details/80549766