windows上每个账号远程登录后,每个用户独立挂载linux存储的某个路径,如何实现

要在 Windows 上为每个用户实现独立挂载 Linux 存储的某个路径,核心是利用 ‌Samba 服务‌ 在 Linux 端配置共享,并在 Windows 端为每个用户单独映射网络驱动器。每个 Windows 用户登录后,系统会保存其独立的网络驱动器映射信息,从而实现"每个账号独立挂载"的效果。

以下是实现步骤:

Linux 端配置 Samba 共享

‌安装 Samba 服务‌

根据你的 Linux 发行版,使用相应的包管理器安装 Samba。

Ubuntu/Debian

sudo apt update

sudo apt install samba samba-common-bin

CentOS/RHEL/Fedora

sudo yum install samba samba-client samba-common

或者对于较新版本

sudo dnf install samba samba-client samba-common

‌创建共享目录和用户‌

为每个需要访问的 Linux 用户创建一个对应的系统账户(如果尚未存在),并为其设置 Samba 密码。

创建系统用户(如果不存在)

sudo useradd username1

sudo useradd username2

为每个用户设置 Samba 密码(此密码与系统登录密码可以不同)

sudo smbpasswd -a username1

sudo smbpasswd -a username2

‌配置 Samba (smb.conf)‌

编辑 Samba 配置文件,为每个用户创建一个独立的共享段。推荐使用 homes 部分来自动共享每个用户的家目录,或者手动为每个用户创建独立的共享。

workgroup = WORKGROUP

security = user

map to guest = bad user

如果需要通过公网访问且445端口被封,可指定其他端口

smb ports = 4450 1390

方案A: 自动共享所有用户的家目录 (推荐)

comment = Home Directories

browseable = no

writable = yes

valid users = %S

create mask = 0664

directory mask = 0775

方案B: 手动为每个用户创建独立共享 (示例)

#[username1_share]

#comment = Home for username1

#path = /home/username1

#browseable = no

#writable = yes

#valid users = username1

#create mask = 0664

#directory mask = 0775

#[username2_share]

#comment = Home for username2

#path = /home/username2

#browseable = no

#writable = yes

#valid users = username2

#create mask = 0664

#directory mask = 0775

‌说明‌:valid users = %S 表示只有与共享名同名的用户才能访问,这天然地实现了用户隔离。browseable = no 使共享目录在"网络"中不可见,需要通过路径手动访问,增加安全性。

‌重启 Samba 服务并配置防火墙‌

重启服务

sudo systemctl restart smb nmb

设置开机自启

sudo systemctl enable smb nmb

开放防火墙端口 (必须开放445端口)

sudo firewall-cmd --permanent --add-service=samba

sudo firewall-cmd --reload

或者手动开放端口

sudo firewall-cmd --permanent --add-port=445/tcp

sudo firewall-cmd --reload

Windows 端为每个用户映射网络驱动器

‌以用户身份登录 Windows‌

每个 Windows 用户需要使用自己的账户登录系统。

‌映射网络驱动器‌

打开"此电脑"或"文件资源管理器"。

点击顶部菜单的"计算机"或"此电脑" -> "映射网络驱动器"。

选择一个驱动器字母(如 Z:)。

在"文件夹"字段中输入 Linux 服务器的 Samba 共享路径:

如果使用了 homes 共享:\<Linux服务器IP>\username1

如果使用了手动共享:\<Linux服务器IP>\username1_share

勾选"使用其他凭据连接"。

点击"完成"。

‌输入凭据‌

在弹出的认证窗口中,用户名填写格式为:<Linux服务器IP>\username1 或 WORKGROUP\username1。

密码填写在 Linux 端通过 smbpasswd -a 设置的 Samba 密码。

勾选"记住我的凭据"(可选,但推荐,以便下次自动登录)。

‌验证‌

成功后,该用户在"此电脑"下会看到映射的网络驱动器。当该用户注销并重新登录时,Windows 会自动重新连接该网络驱动器,且其访问权限仅限于其自己的家目录或指定共享目录,与其他用户完全隔离。

关键点总结

‌用户隔离‌:通过 Samba 的 valid users = %S 配置和 Windows 的"使用其他凭据连接"功能,确保每个 Windows 用户只能访问自己被授权的 Linux 目录。

‌凭据管理‌:Windows 会为每个登录用户存储独立的网络驱动器映射和凭据,这是实现"每个账号独立"的关键。

‌端口要求‌:Windows 访问 Samba 共享必须能访问 Linux 服务器的 ‌445 端口‌。‌

相关推荐
小白同学_C11 小时前
Lab4-Lab: traps && MIT6.1810操作系统工程【持续更新】 _
linux·c/c++·操作系统os
今天只学一颗糖11 小时前
1、《深入理解计算机系统》--计算机系统介绍
linux·笔记·学习·系统架构
2601_9491465311 小时前
Shell语音通知接口使用指南:运维自动化中的语音告警集成方案
运维·自动化
儒雅的晴天11 小时前
大模型幻觉问题
运维·服务器
Gofarlic_OMS12 小时前
科学计算领域MATLAB许可证管理工具对比推荐
运维·开发语言·算法·matlab·自动化
通信大师12 小时前
深度解析PCC策略计费控制:核心网产品与应用价值
运维·服务器·网络·5g
dixiuapp12 小时前
智能工单系统如何选,实现自动化与预测性维护
运维·自动化
不做无法实现的梦~12 小时前
ros2实现路径规划---nav2部分
linux·stm32·嵌入式硬件·机器人·自动驾驶
Elastic 中国社区官方博客12 小时前
如何防御你的 RAG 系统免受上下文投毒攻击
大数据·运维·人工智能·elasticsearch·搜索引擎·ai·全文检索
小锋学长生活大爆炸12 小时前
【教程】免Root在Termux上安装Docker
运维·docker·容器