在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)。

相关文章
|
3天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
18 3
|
8天前
|
存储 Linux Windows
linux常用目录
/sbin s就是super User的意思,这里存放的是系统管理员使用的系统管理程序。 /home 存放普通用户的主目录,在Linux中每个用户都有一个自己的目录,一版该目录名是以用户的账号命名的。 /root 该目录为系统管理员,也称为超级权限者的用户主目录。 /lib 系统开机所需要最基本的动态连接共享库,其作用类似于windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。 /etc 所有的系统管理所需要的配置文件和子目录。 /usr 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似于windows下的program fies目录。 /bo
23 2
|
7天前
|
Linux Python
Linux 中某个目录中的文件数如何查看?这篇教程分分钟教会你!
在 Linux 系统中,了解目录下的文件数量是常见的需求。本文介绍了多种方法,包括使用 `ls` 和 `wc` 命令组合、`find` 命令、`tree` 命令以及编程方式(如 Python)。无论你是新手还是有经验的用户,都能找到适合自己的方法。掌握这些技巧将提高你在 Linux 系统中的操作效率。
18 4
|
13天前
|
网络协议 Linux
linux系统重要文件目录
本文介绍了Linux系统中的重要目录及其历史背景,包括根目录、/usr、/etc、/var/log和/proc等目录的结构和功能。其中,/etc目录下包含了许多关键配置文件,如网卡配置、DNS解析、主机名设置等。文章还详细解释了各目录和文件的作用,帮助读者更好地理解和管理Linux系统。
35 2
|
22天前
|
Linux 开发工具 Perl
Linux命令替换目录下所有文件里有"\n"的字符为""如何操作?
【10月更文挑战第20天】Linux命令替换目录下所有文件里有"\n"的字符为""如何操作?
34 4
|
1月前
|
存储 Linux 编译器
cmake的单目录和多目录的使用(Linux和Windows)
本文介绍了在Windows和Linux平台上使用CMake构建单目录和多目录项目的步骤,包括如何配置CMakeLists.txt文件以及如何生成和使用可执行文件、库文件。
20 2
|
1月前
|
移动开发 Linux
Linux 文件与目录管理
Linux 文件与目录管理
22 3
|
2月前
|
Linux
深入理解Linux中的cp命令:文件与目录的复制利器
深入理解Linux中的cp命令:文件与目录的复制利器
|
2月前
|
Linux Shell Python
9-7|salt代码在linux机子那个目录
9-7|salt代码在linux机子那个目录
|
2月前
|
数据可视化 Ubuntu Linux
8-14|如何查看linux目录下文件大小
8-14|如何查看linux目录下文件大小