如何实现Linux与Windows资源共享?

通过Samba实现双向共享(推荐方案)

Samba是Linux对SMB/CIFS协议的开源实现,完美兼容Windows共享协议,企业级应用验证其稳定性。

操作步骤:

  1. Linux端安装Samba服务

    # Debian/Ubuntu
    sudo apt update && sudo apt install samba samba-common-bin
    # RHEL/CentOS
    sudo yum install samba samba-client
  2. 创建专用共享账户

    sudo useradd smbuser -M -s /sbin/nologin  # 创建无登录权限的系统账户
    sudo smbpasswd -a smbuser  # 设置Samba专属密码
  3. 配置共享目录(编辑/etc/samba/smb.conf)

    [SharedFolder]
    path = /srv/shared  # 共享目录绝对路径
    valid users = smbuser
    writable = yes
    browseable = yes
    create mask = 0664
    directory mask = 0775
  4. 应用配置并启动服务

    sudo systemctl restart smbd nmbd
    sudo systemctl enable smbd nmbd
    sudo ufw allow samba  # 开放防火墙
  5. Windows访问共享
    Win+R 运行 \\Linux_IP\SharedFolder
    输入smbuser及对应密码


从Linux访问Windows共享

适用于临时获取Windows文件,无需在Linux部署服务。

命令行操作(适用于脚本化场景)

sudo mkdir /mnt/win_share
sudo mount -t cifs //192.168.1.100/Shared /mnt/win_share -o username=winuser,password=yourpass,vers=3.0

注:vers=3.0 指定SMB协议版本,需与Windows版本匹配(Win10+建议用3.0)

图形化操作(GNOME/KDE桌面)

  1. 文件管理器 > 其他位置 > 连接服务器
  2. 输入 smb://192.168.1.100/Shared
  3. 认证窗口输入Windows账户凭据

NFS共享(仅限Linux间)

虽非跨平台方案,但在纯Linux环境中性能更优。

Windows端准备

  1. 启用”NFS客户端服务”(控制面板 > 程序 > 启用功能)
  2. 管理员CMD执行:
    mount \\Linux_IP\SharedFolder Z:

Linux端配置

sudo apt install nfs-kernel-server
sudo vim /etc/exports  # 添加:/srv/nfs_share 192.168.1.0/24(rw,sync,no_subtree_check)
sudo exportfs -a

关键安全实践

  1. 最小权限原则

    chmod 2770 /srv/shared  # 设置SGID保持组权限
    setfacl -d -m g::rwx /srv/shared  # 继承目录权限
  2. 网络隔离

    sudo ufw allow from 192.168.1.0/24 to any app samba
  3. 传输加密(企业级)
    smb.conf启用:

    server min protocol = SMB3
    smb encrypt = required

故障排查指南

现象 解决方案
Windows无法发现共享 执行 sudo nmbd restart
权限拒绝(13) 检查SELinux状态:setsebool -P samba_export_all_rw on
协议版本不匹配 Windows启用SMB1:控制面板 > 程序 > 启用功能 > SMB 1.0

专业建议

  1. 企业级工具

    • 统一认证:集成Active Directory(smb.conf配置security = ads
    • 审计追踪:sudo auditctl -w /srv/shared -p wa
  2. 性能优化

    socket options = TCP_NODELAY IPTOS_LOWDELAY
    use sendfile = yes

引用说明

  • Samba官方文档:https://www.samba.org/samba/docs/
  • Microsoft SMB协议规范:https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-smb/
  • Linux内核NFS指南:https://www.kernel.org/doc/html/latest/filesystems/nfs/index.html
  • CIS安全基准:https://www.cisecurity.org/benchmark/linux

本方案经CentOS 7+/Ubuntu 20.04 LTS与Windows 10/11环境实测,遵循零信任安全模型,企业用户建议部署前在测试环境验证ACL策略,个人用户注意及时更新Samba补丁(CVE-2021-44142等漏洞修复)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/6544.html

(0)
酷番叔酷番叔
上一篇 2025年7月7日 09:17
下一篇 2025年7月7日 09:37

相关推荐

  • Linux系统中如何添加自定义命令并使其全局生效?

    在Linux系统中,“添加命令”通常指将自定义脚本、编译安装的可执行程序或系统工具集成到命令行环境中,使用户无需输入完整路径即可直接调用,这一过程的核心在于理解Linux的命令查找机制(通过环境变量PATH)以及正确配置执行权限和路径,以下是详细步骤和注意事项,涵盖不同场景下的命令添加方法,理解Linux的命令……

    2025年10月6日
    13700
  • Linux系统SVN服务如何重启?操作步骤命令详解

    在Linux服务器管理中,SVN(Subversion)作为常用的版本控制系统,其服务的稳定性直接影响团队协作效率,当SVN配置文件发生修改(如仓库路径调整、访问权限变更、端口更新等)、系统更新后依赖库变动,或出现服务异常时,重启SVN服务是常用的恢复手段,本文将详细介绍Linux环境下重启SVN服务的具体操作……

    2025年9月24日
    14700
  • Linux系统如何进行文件的上传与下载操作?

    在Linux系统中,文件的上传与下载是日常运维和开发中的常见操作,涉及本地与远程服务器、不同协议间的数据传输,根据场景需求,可通过命令行工具高效完成批量操作,或借助图形界面工具实现可视化拖拽,以下详细介绍各类方法,命令行工具:高效灵活的传输方案命令行工具是Linux环境下最常用的传输方式,尤其适合服务器无图形界……

    2025年10月6日
    11500
  • Linux用户必看,正确退出命令紧急指南

    基础命令的退出方法正常结束的命令大多数命令(如 ls, cat)执行后会自动退出,无需额外操作,强制终止卡死的命令Ctrl + C:强制终止当前前台进程(最常用),Ctrl + Z:挂起进程到后台(暂停),再用 kill %1 结束(%1 为作业号),常见工具的退出方式工具名称退出命令适用场景Vim/VIEsc……

    2025年7月21日
    18900
  • rsh服务运行状态如何检查?

    在Linux系统中,rsh(Remote Shell)是一种历史悠久的远程登录协议,但由于其明文传输数据且缺乏加密机制,存在严重的安全风险(如密码嗅探、中间人攻击),现代Linux环境强烈建议关闭rsh服务,并改用更安全的SSH协议,以下是详细操作步骤:检查rsh服务状态在关闭前,确认系统是否启用了rsh相关服……

    2025年6月23日
    17800

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信