一、使用Samba实现CentOS文件共享(适用于Windows/Linux跨系统共享)
Samba是CentOS上最常用的文件共享服务,支持与Windows、macOS等系统无缝通信,以下是详细配置步骤:
通过YUM/DNF包管理器安装Samba主程序、客户端工具及通用配置文件:
sudo yum install samba samba-client samba-common -y # CentOS 7
sudo dnf install samba samba-client samba-common -y # CentOS 8/9
备份默认配置文件后,编辑/etc/samba/smb.conf(Samba核心配置文件),在末尾添加自定义共享定义:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak # 备份原配置
sudo nano /etc/samba/smb.conf
添加以下内容(以共享/srv/samba/my_share为例):
[my_share] # 共享名称(客户端访问时使用)
comment = My Shared Folder # 共享描述
path = /srv/samba/my_share # 实际共享目录路径
browseable = yes # 允许在网络中发现该共享
writable = yes # 允许写入(若仅需下载,设为no)
guest ok = no # 禁止匿名访问(提升安全性)
valid users = user1 user2 # 允许访问的用户(需提前创建Samba用户)
create mode = 0664 # 新建文件的默认权限(rw-r--r--)
directory mode = 0775 # 新建目录的默认权限(rwxr-xr-x)
sudo mkdir -p /srv/samba/my_share # 创建共享目录
sudo chmod -R 0777 /srv/samba/my_share # 临时开放所有权限(便于测试,生产环境建议细化)
sudo chown -R nobody:nobody /srv/samba/my_share # 设置目录属主(或指定专用用户)
Samba使用独立密码数据库,需先将系统用户添加为Samba用户并设置密码(系统用户需提前存在):
sudo useradd user1 # 创建系统用户(若不存在)
sudo smbpasswd -a user1 # 设置Samba密码(输入两次)
sudo systemctl start smb # 启动Samba服务
sudo systemctl enable smb # 设置开机自启
sudo systemctl start nmb # 启动NetBIOS服务(可选,用于Windows网络发现)
sudo systemctl enable nmb # 设置NetBIOS开机自启
sudo firewall-cmd --permanent --add-service=samba # 永久放行Samba服务
sudo firewall-cmd --reload # 重新加载防火墙规则
\\<CentOS_IP>\my_share,输入Samba用户名(如user1)和密码即可访问。samba-client后,使用以下命令测试连接:smbclient //localhost/my_share -U user1 # 输入密码后,若进入共享目录则配置成功
sudo firewall-cmd --list-all | grep samba);临时关闭SELinux测试(sudo setenforce 0),若解决则调整SELinux上下文(sudo semanage fcontext -a -t samba_share_t "/srv/samba/my_share(/.*)?")。sudo chown -R samba_user:samba_user /srv/samba/my_share),并检查create mode/directory mode设置。二、使用NFS实现CentOS文件共享(适用于Linux系统间共享)
NFS(Network File System)是Linux/Unix系统间的常用共享协议,传输效率高,适合内网环境:
sudo yum install nfs-utils -y # CentOS 7
sudo dnf install nfs-utils -y # CentOS 8/9
编辑/etc/exports(NFS共享配置文件),添加共享规则:
sudo nano /etc/exports
添加以下内容(以共享/mnt/nfs_share为例,允许192.168.1.0/24网段访问):
/mnt/nfs_share 192.168.1.0/24(rw,sync,no_root_squash,no_subtree_check)
参数说明:
rw:允许读写;sync:同步写入(数据更安全);no_root_squash:允许root用户访问(若需限制,改为root_squash);no_subtree_check:禁用子树检查(提升性能)。sudo mkdir -p /mnt/nfs_share # 创建共享目录
sudo chmod -R 0777 /mnt/nfs_share # 临时开放权限(测试用,生产环境建议细化)
sudo chown -R nobody:nobody /mnt/nfs_share # 设置目录属主
sudo systemctl start nfs-server # 启动NFS服务
sudo systemctl enable nfs-server # 设置开机自启
NFS依赖多个端口(如2049、111等),需放行nfs服务:
sudo firewall-cmd --permanent --add-service=nfs # 永久放行
sudo firewall-cmd --reload # 重新加载规则
在客户端机器上执行以下步骤:
sudo yum install nfs-utils -y # 安装NFS客户端
sudo mkdir -p /mnt/nfs_client # 创建本地挂载点
sudo mount 192.168.1.100:/mnt/nfs_share /mnt/nfs_client # 挂载共享目录(替换为NFS服务器IP)
持久化挂载:编辑/etc/fstab,添加以下内容(重启后自动挂载):
192.168.1.100:/mnt/nfs_share /mnt/nfs_client nfs defaults 0 0
sudo systemctl status nfs-server);确认/etc/exports配置正确(sudo exportfs -a重新导出);检查防火墙是否放行NFS服务。chmod/chown调整);若使用no_root_squash,需谨慎授权(避免root滥用)。