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 端口‌。‌

相关推荐
KaiwuDB6 分钟前
KaiwuDB 运维实战06:数据库备份与恢复:从理论到实战
运维·数据库·时序数据库·kaiwudb
无人生还别怕18 分钟前
如何搭建k8s服务(containerd部署)
linux·云原生·容器·kubernetes·openanolisos
知已难寻39 分钟前
01 · OpenStack的认证管理 Keystone
运维·服务器·云原生·云计算·openstack
ai_xiaogui1 小时前
私有化部署大模型实战:PanelAI 一键搭建、Token 计费与多用户隔离
运维·私有化部署·大模型部署·大模型 token 计费·api key 统一管理·多用户实例隔离·应用市场一键部署
企鹅侠客1 小时前
Linux CPU 负载平均值(Load Average)详解:从原理到实践
linux·运维·服务器·服务器负载
易点云徐源1 小时前
HP 暗影精灵 PRO 16 安装双系统后,开机直接进入 Windows,按 F9 才能进入 Ubuntu:GRUB 菜单不显示的处理方法
linux·运维·ubuntu
木雷坞2 小时前
Baserow Docker部署:导入设备借用CSV,再用表单新增登记
运维·docker·容器
第404号工位2 小时前
离职退电脑前别只点“清空回收站”!手把手教你彻底抹除凭证与数字痕迹
linux·python·架构
程序员大雄学编程2 小时前
crontab 脚本不写日志?我把 7 个原因在 Ubuntu 上逐个复现了一遍
运维
就像楞次定律2 小时前
【Linux 学习记之二】C++ 构建体系与底层链接机制的深度透视(1)
linux·后端