在Linux中,如何使用NFS和Samba共享文件和目录?

简介: 在Linux中,如何使用NFS和Samba共享文件和目录?

在Linux中,NFS(Network File System)和Samba是两种常用的文件共享协议,分别用于在Unix-like系统之间以及跨Linux和Windows系统共享文件和目录。下面分别详细介绍如何使用它们:

1. 使用NFS共享文件和目录
  1. 安装NFS服务
    对于基于Debian/Ubuntu的系统:
sudo apt-get update
sudo apt-get install nfs-kernel-server
  1. 对于基于RHEL/CentOS的系统:
sudo yum install nfs-utils
  1. 配置NFS共享:编辑/etc/exports文件,添加要共享的目录及其相关选项。例如,将/home/shared目录共享给IP地址为192.168.1.0/24子网内的所有主机,只读访问:
/home/shared 192.168.1.0/24(ro,sync,no_subtree_check)
  1. 各项选项含义:
  • ro:只读访问
  • sync:同步写入磁盘,保证数据完整性
  • no_subtree_check:禁用子目录的检查,提高性能
  1. 应用配置更改并启动服务
sudo exportfs -a # 更新NFS共享列表
sudo systemctl start nfs-kernel-server # 启动服务
sudo systemctl enable nfs-kernel-server # 设置开机启动
# 对于RHEL/CentOS 7之前的版本,使用:
sudo service nfs restart
sudo service rpcbind start # 如果尚未启动rpcbind(portmapper)
  1. 客户端挂载NFS共享
    在客户端上,可以使用以下命令挂载NFS共享:
sudo mkdir /mnt/nfs_shared
sudo mount -t nfs server_ip:/home/shared /mnt/nfs_shared
2. 使用Samba共享文件和目录
  1. 安装Samba服务
    对于基于Debian/Ubuntu的系统:
sudo apt-get update
sudo apt-get install samba samba-common-bin
对于基于RHEL/CentOS的系统:
```bash
   sudo yum install samba
  1. 配置Samba
  • 配置用户数据库(如果还没有配置的话,可以使用samba-tool user add <username>添加用户)。
  • 编辑Samba主配置文件 /etc/samba/smb.conf,添加或修改共享部分。例如:
[shared]
comment = Shared Folder for everyone
path = /home/shared
browseable = yes
read only = no
guest ok = no
create mask = 0775
directory mask = 0775
valid users = @users # 允许某个用户组访问,或者指定用户名代替
  1. 更新Samba配置并重启服务
sudo smbcontrol all reload-config # 更新配置(在较新版本的Samba中)
sudo systemctl restart smbd nmbd # 或者 service smbd restart && service nmbd restart
  1. 客户端挂载Samba共享
    在Windows客户端上,可以直接在文件资源管理器中输入 \\server_ip\shared 访问共享文件夹。在Linux客户端上,可以通过 cifs-utils 包提供的 mount 命令挂载:
sudo apt-get install cifs-utils # 安装cifs工具(如果尚未安装)
sudo mkdir /mnt/samba_shared
sudo mount -t cifs //server_ip/shared /mnt/samba_shared -o username=<username>,password=<password>
  1. 或者在 /etc/fstab 中添加持久挂载条目。

综上所述,在实际操作中,务必根据您的具体需求和安全性要求调整上述配置,包括但不限于权限控制、用户验证机制和加密选项等。此外,记得确保防火墙规则允许相应端口的通信。对于Samba,默认使用TCP 139和445端口。对于NFS,常用端口有UDP 111(rpcbind)、TCP/UDP 2049(nfs)。

相关文章
|
17天前
|
Linux 数据安全/隐私保护 Windows
Linux共享Windows目录
Linux共享Windows目录
|
10天前
|
Linux 应用服务中间件 nginx
|
16天前
|
Linux
linux如何去掉目录背景颜色
linux如何去掉目录背景颜色
16 1
|
17天前
|
Ubuntu Linux
内核实验(四):Qemu调试Linux内核,实现NFS挂载
本文介绍了在Qemu虚拟机中配置NFS挂载的过程,包括服务端的NFS服务器安装、配置和启动,客户端的DHCP脚本添加和开机脚本修改,以及在Qemu中挂载NFS、测试连通性和解决挂载失败的方法。
27 0
内核实验(四):Qemu调试Linux内核,实现NFS挂载
|
20天前
|
JSON Linux 网络安全
【Azure 应用服务】如何从App Service for Linux 的环境中下载Container中非Home目录下的文件呢?
【Azure 应用服务】如何从App Service for Linux 的环境中下载Container中非Home目录下的文件呢?
|
22天前
|
Ubuntu Linux 测试技术
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
在Linux中,已知 apache 服务的访问日志按天记录在服务器本地目录/app/logs 下,由于磁盘空间紧张现在要求只能保留最近7天的访问日志,请问如何解决?
|
22天前
|
Shell Linux 开发工具
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
在Linux中,如何编写shell脚本将当前目录下大于10K的文件转移到/tmp目录下?
|
22天前
|
Linux Shell 网络安全
在Linux中,rsync同步时,如何删除目标数据多出来的数据,即源上不存在,但目标却存在的文件或者目录?
在Linux中,rsync同步时,如何删除目标数据多出来的数据,即源上不存在,但目标却存在的文件或者目录?
|
22天前
|
Linux
在Linux中,如何使用xargs和exec实现把当前目录下所有后缀名为.txt的⽂件的权限修改为777。
在Linux中,如何使用xargs和exec实现把当前目录下所有后缀名为.txt的⽂件的权限修改为777。
|
22天前
|
Linux
在Linux中,Rsync 同步时,如果要同步的源中有软连接,如何把软连接的目标文件或者目录同步?
在Linux中,Rsync 同步时,如果要同步的源中有软连接,如何把软连接的目标文件或者目录同步?