linux系统中使用Samba和NFS实现文件共享

1. NFS 概念

    网络文件系统 (NFS) 是 Unix 系统和网络附加存储文件管理器常用的网络文件系统 ,允许多个客户端通过网络共享文件访问。它可用于提供对共享二进制目录的访问 , 也可用于允许用户在同一工作组中从不同客户端访问其文件。

    NFS 协议有多个版本 :Linux 支持版本 4 、版本 3 和版本 2, 而大多数系统管理员熟悉的是 NFSv3 。

    默认情况下 , 该协议并不安全 , 但是更新的版本 ( 如 NFSv4) 提供了对更安全的身份验证的支持 ,

    甚至可以通过 kerberos 进行加密

客户端也要安装nfs
唯一访问方式:挂载
2.客户端 NFS 挂载选项

        rw 挂载可读写的文件系统
        ro 挂载只读文件系统
        vers=4 尝试只使用指定的 NFS 版本进行挂载。如果服务器不支持该版本 , 则挂载请求失败
        soft: 如果 NFS 请求超时 , 三次尝试后返回错误。权衡数据完整性与提高客户端响应性。 ( 默认行为 hard, 将无限期地重试 )

 

 

一、NFS文件共享


1、安装

命令:yum install nfs-utils -y
     systemctl start nfs
     systemctl start firewalld  #火墙允许了后还是不能访问
     firewall-cmd --list-all
     firewall-cmd --permanent --add-service=nfs
     firewall-cmd --permanent --add-service=rpc-bind #rpc-bind给客户端随即分配端口
     firewall-cmd --permanent --add-service=mountd  #mountd --->客户主机挂载时需要的工具   firewall-cmd --list-all

用户连接NFS文件,共享端测试:

 

2、编辑共享文件

命令:vim /etc/exports

   
内容:/westos *(async) ##共享文件  共享给谁 (共享方式,数据同步)
 
     exportfs -rv     ##刷新配置

刷新配置

 

测试文件共享测试:

在用户端进行挂载:

查看共享内容:

 

3、卸载:下载 后回到原目录不可查看原来的内容

 

 

二、autofs自动挂载

autofs ---> 在客户端可以自动挂载的服务

  1. 安装自动挂载软件:yum install autofs.x86_64 -y

命令:yum install autofs.x86_64 -y
     systemctl start autofs

 

2、开启autofs 后会自动生成 /net/ 目录,关闭后自动消失

进入/net/目录可以进入共享用户的目录后自动挂载

 

3、制定闲置多长时间自动卸载



    编辑主配置文件:

    rpm -qc autofs   可查看主配主文件

    7.0以上的版本:/etc/autofs.conf
    7.0以下的版本:/etc/sysconfig/autofs
vim /etc/autofs.conf
timeout=3  ##3秒没有操作后自动卸载,没改之前默认卸载时间:300秒
systemctl restart autofs.service

 

(1)、编辑自动挂载主配置文件

(2)、编辑文件内容

 

(3)、重服务

 

(4)、测试:闲置3s后自动卸载

 

4、编辑系统自动挂载文件

vim /etc/auto.master     ##主策略文件
/misc   /etc/auto.misc
/opt    /etc/auto.westos   ##最终挂载点的上层目录

(1)编辑主策略文件

(2)、指定自动挂载的文件

(3)、建立挂载目录 重启服务


(4)编辑用户自动挂载文件

vim /etc/auto.westos
pub      -or    172.25.254.118:/mnt
 
systemctl restart autofs

 

(5)、编辑建立好的挂载文件指定挂载的的目录

 

(6)、测试:进入自动挂载目录后自动挂载

(7)、查看挂载的内容

命令:mount

 

(8)、进入自动挂载目录、查看挂载内容

 

 

5、NFS文件共享的读写权限

(1)、实验现象:用户挂载只能看不能写

(2)、步骤

vim /etc/exports        ##编辑共享主文件
内容: /mnt  *(async,rw)  ##赋予用户读写的权限
exportfs -rv           
chmod  777  /mnt/        ##修改访问目录的权限

(3)、编辑端自动挂载文件

vim /etc/auto.mnt
内容:pub  -rw  172.25.66.166:/mnt
systemctl  restart  autofs       

 

(4)、测试:

 

5.匿名用户访问

任何人使用共享时,都是指定的向下兼容
改成hard会卡

(1)、匿名用户建立文件时不指定用户身份

 

建立文件属于密名用户

 

(2)、匿名用户以root身份建立文件

vim  /etc/exportfts
内容:/mnt   *(async,rw no_root_squash)
exportfs  -rv 

 

(1)、进入用户端挂载系统

(2)、测试:

新建用户属于root用户

 

3、以student用户建立文件

(1)、编辑目录

(2)、指定建立的uid 和gid

(3)、刷新

(4)、测试:

 

 

三、Samba 文件共享

用 Internet 文件系统 (CIFS) 也称为服务器信是适用于MicrosoftWindows 服务器和客户端的标准文件和打印机共享系统息块 (SMB)。
    Samba 服务可用于将 Linux 文件系统作为 CIFS/SMB 网络文件共享进行共享 ,并将 Linux 打印机作为 CIFS/SMB 打印机共享进行共享。

2.Samba 服务的组成部分

    软件包:

    Samba-common ——>Samba 的支持文件
    Samba-client ——>客户端应用程序
    Samba ——>服务器应用程序

    服务名称:smb nmb
    服务端口 :通常使用 TCP/445 进行所有连接。还使用UDP137 、 UDP138 和 TCP/139 进行向后兼容
    主配置文件 :/etc/samba/smb.conf

3.保护 Smb

    samba_enable_home_dirs
    布尔值允许本地 Linux 主目录作为 CIFS 文件共享导出至其他系统
    use_samba_home_dirs
    布尔值允许挂载远程 CIFS 文件共享并将其用作本地 Linux 主目录
    samba_share_t
    smb 共享目录的 selinux 安全上下文
    samba_export_all_ro 和 samba_export_all_rw
    共享系统目录时要打开

4.Samba服务器的安装及访问调试:

yum install samba-common samba-client.x86_64 samba.x86_64 -y  ##安装软件
systemctl stop friewalld     ##默认受火墙影响
systemctl start smb   ##开启服务

 

5、编辑域名解析文件

(1)、进入域名解析文件

 

(2)、检查解析域名的畅通情况

(3)、测试:

 

6、建立samnba用户

smbpasswd -a westos  ##建立用户:smb用户必须时本机存在的用户
pdbedit -L           ##查看smb用户列表
pdbedit -x student   ##删除用户

(1)、建立samba用户

(2)、测试:

smbclient //172.25.254.118/student -U student  ##查看家目录

 

7、pdbedit 命令的用法

pdbedit -L                ##查看smb用户列表
pdbedit -a -u   student   ##建立用户
pdbedit -lv     username  ##查看用户详细信息

 

 

8、samba 自动挂载

vim /etc/auto.master      ##进入自动挂载目录

 

(1)、编辑文件写入需要挂载的目录

 

挂载

 

vim /etc/auto.master      ##进入自动挂载目录

内容:
    /samba    /etc/auto.samba     

 

(2)、进入挂载目录

(3)、将自动挂载目录写入文件

 

(4)、编辑自动挂载文件

vim /etc/auto.samba     

 

(5)、编辑自动挂载文件的内容

(6)、重启服务

(7)、查看挂载的内容

 

9、设置samba工作目录

(1)、编辑samba注配置文件

vim /etc/samba/smb.conf      

(2)、修改工作目录名称

(3)、重启服务

(4)、测试:

 

10、用户黑白名单的建立

(1)、建立用户黑名单:hosts deny = 172.25.66.11

(2)、建立用户白名单:host allow = 172.25.66.11

(3)、测试:可以访问

 

11、Smaba共享目录
(1)、共享自己建立的文件

 

(2)、编辑共享文件

vim /etc/samba/smb.conf
 
[WESTOSXIXI]  ##共享名称(能看到的名字)
comment= test share  ##共享说明(能看到的目录)
path =/westos    ##共享目录路径
 
systemctl restart smb

 

 

(3)、测试:

smbclient -L //172.25.666.166/WESTOSXIXI -U westos

 

12、允许匿名用户访问

(1)、编辑文件

vim /etc/samba/smb.conf
systemctl restart smb

 

(2)、重启服务

 

(3)、测试:

 

13、管理参数

所有用户均可写:writable = yes 

(1)、实验准备:

挂载之后没有开放各户端写的权限

 

(2)、赋予各户端对/westos/共享目录操作的权限

chmod     777    /westos/

 

(3)、开启各户端编辑共享目录的功能

 

(4)、重启服务

systemctl restart smb.service

 

(5)、建立samba用户

(6)、编辑自动挂载文件

 

(7)、以lee用户的身份进行挂载

 

(8)、以lee的身份建立文件,所建立的文件属于lee用户

 

(二)、关闭各户端写的功能

 

(2)、测试:

 

 

 

14、指定用户可写:write list = username

(1)、编辑文件指定lee用户可以写入

(2)、查看用户列表

 

(3)、以lee用户身份进行挂载

结果:可以建立文件

 

(4)、以westos身份进行挂载

结果:写入失败

 

 

15、指定用户以及该用户组写下的用户对挂载的内容可写:write list = @username

(1)、编辑文件内容

 

(2)、建立lee用户组下的用户westos

(3)、以westos用户身份进行挂载

测试结果:可以写入

(4)、以lee身份进行挂载

测试结果:可以写入

(5)、以student用户身份进行挂载

测试结果:不可写入

autofs

 

16、指定用户可以挂载:valid users =+username

(1)、以下图以lee用户为例

重启服务:

(2)、以westos用户身份挂载

测试结果:没有指定westos用户,挂载失败。

(3)、以lee用户身份进行挂载

测试结果:可以挂载

 

17、指定lee用户以及lee用户所属组下的用户可以挂载

1、编辑文件:valid users = +lee

 

(2)、以westos用户身份进行挂载

测试结果:westos用户挂载成功

 

18、设定共享目录是否可见:browseable = No

浏览权限browseable =No/yes     ##浏览权限(不能查看系统共享文件)

设置browseable =No,登录后看不到westos共享文件

(1)、实验测试:

(2)、编辑文件内容

 

(3)、测试:

 

 

19、selinux都及文件共享的影响

(1)、实验准备将selinux的等级改成强制

 

(2)、重启服务:

 

(3)、进行文件挂载

测试结果:挂载后用户端无法查看挂载的内容

(4)、将selinux的等级改成警告

(5)、测试结果:可以查看到共享目录下的内容

 

注:共享目录自建立目录时需要修改的selinux属性,此方法修改只针对修改目录

 

20、安全上下文的修改

(1)、进行安全上下文的设定

semanage fcontext -a -t samba_share_t '/westos(/.*)?'
restorecon -RvvF /westos/

注:用户此方法修改安全上下文永久生效

 

(2)、将selinux等级设置为强制

 

(3)、测试结果:可以看到共享目录

 

 

21、文件共享服务

(1)、安装文件共享服务软件

yum install cifs-util -y 

(2)、创建文件共享读取用户信息的文件

vim /root/smbpassfile         ##创建共享文件读取用户信息的文件
chmod 600 /root/smbpassfile   ##将文件权限设置为只用管理员可见

(3)、将用户信息写入文件:

格式用户名

密码

 

(4)、挂载:

查看挂载的内容

更改系统及安全上下文会有新的问题出现(这里不多作说明)
bool打开后会忽略安全上下文
共享自己的文件也可以用这个方法,但是权限过大不安全

 

(5)、开启用户写的权限

getsebool -a | grep samba
setsebool -P samba_export_all_ro on  ##打开只读开关
setsebool -P samba_export_all_rw on   ##读写

 

(6)、测试结果:用户可以建立文件

/smbpassfile

 

22、指定共享用户:

(1)、实验准备

切换到student用户

student用户查看共享文件失败

(2)、编辑smb.conf文件,将指定用户可挂载功能关闭

 

(3)、重启服务、设置selinux的等级

(4)、添加对student用户可以共享的用户为lee

cifscreds add -u lee 172.25.66.166

测试结果:student用户可以查看到共享文件中的内容

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: FTP、NFSSamba都是用于文件共享的协议,但它们的实现方式和适用场景有所不同。 FTP是一种基于TCP/IP协议的文件传输协议,用于在网络上传输文件。FTP服务器可以在Linux系统使用,允许用户通过FTP客户端上传和下载文件。 NFS是一种网络文件系统协议,用于在网络上共享文件系统。它允许多个计算机通过网络访问同一个文件系统,就像它们在本地访问一样。NFSLinux系统使用较为广泛,特别是在大型网络环境Samba是一种开放源代码的软件套件,用于在Linux系统实现Windows文件共享服务。它允许Linux系统作为文件服务器,与Windows系统进行文件共享Samba还支持其他协议,如FTP和NFS。 总的来说,FTP适用于简单的文件传输,NFS适用于多个计算机访问同一个文件系统,而Samba适用于Linux系统与Windows系统之间的文件共享。 ### 回答2: FTP、NFSSamba 都是用来实现文件共享的协议,但是它们在实现上有一些不同。 FTP(File Transfer Protocol)是一个用来传输文件的协议,通常被用来将文件从一个计算机上传到另一个计算机。它使用客户端-服务器模型,即客户端从服务器端下载或上传文件。使用 FTP 必须有一个 FTP 服务器,并且需要使用 FTP 客户端才能访问服务器。FTP 是基于 TCP/IP 协议的,支持用户名和密码验证,可以使用加密的 SSL 层进行安全传输。 NFS(Network File System)是一种分布式文件系统,允许不同的计算机通过网络共享文件。它基于客户端-服务器模型,其服务器端负责管理和存储文件,客户端可以通过网络访问这些文件。NFS 是 UNIX 和 Linux 等操作系统之间共享文件的首选方式之一。使用 NFS 时,需要在服务器端配置 NFS 服务器,并在客户端上安装 NFS 客户端,使用 NFS文件共享不需要用户名和密码认证。 Samba 是一种开放源代码软件,用于在 Linux 和 Unix 系统实现 SMB/CIFS 协议,它可以使 Linux 和 Unix 系统与 Windows 系统间共享文件和打印机。Samba 允许 Linux 和 Unix 系统作为 SMB/CIFS 服务器或客户端使用,在 Linux 系统上可以使用 Samba 服务器来共享文件夹和打印机,也可以使用 Samba 客户端来连接 Windows 共享资源。Samba 支持基于用户身份验证的文件和打印机共享,可以为不同的用户提供不同级别的访问权限。 总体而言,在轻量级的文件共享,FTP 是一个不错的选择,但在文件系统级别的共享NFS 是更好的选择,而在 Linux 和 Windows 平台之间的文件共享方案Samba 可以充分发挥其优势。这三个协议每个都有其优点和应用场景,使用时应根据具体需求进行选择。 ### 回答3: ftp、nfssamba都是在Linux系统用于实现文件共享的服务,但具体实现方式和应用场景有所不同。 ftp,全称为文件传输协议(File Transfer Protocol),是一种标准化的协议,用于将文件从一个主机传送到另一个主机。它可以通过命令行或者ftp客户端进行操作,是一种跨平台的文件传输方法。 nfs,全称为网络文件系统(Network File System),是Linux系统一种常见的文件共享方式,它可以让计算机通过网络访问到另一台计算机上的共享文件。它也可以通过命令行或者图形化工具进行操作,主要应用于局域网内的文件共享samba,是一种开源软件,用于在Linux系统上与Windows系统之间共享文件和打印机。它支持各种Windows文件共享协议,包括SMB/CIFS协议,可以让Linux系统与Windows系统无缝交互。 总的来说,ftp、nfssamba都可以用于在Linux系统实现文件共享,但具体应用场景和操作方式有所不同。ftp是一种跨平台传输方式,适用于需要将文件从一个主机传输到另一个主机的场合;nfs适用于同一局域网内多台计算机之间的文件共享samba则主要用于Linux系统与Windows系统之间的文件共享

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值