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

相关推荐
羑悻的小杀马特2 分钟前
从写 YAML 到集群自愈:KES-Operator 把 KES 集群接进 Kubernetes 原生体系
运维·数据库·容器·kubernetes
bksczm6 分钟前
MySQL基础篇之事务
linux·数据库·sql·mysql
李白客7 分钟前
数据库管理工具怎么选?Navicat、DataGrip、DBeaver 六维横向对比与选型建议
运维·数据库
iPad协议个微协议10 分钟前
微信二次开发如何用 WechatApi 打通消息、客户和业务系统
运维·微信·自动化·微信开发·wechatapi·个人微信开发
蓝速科技10 分钟前
蓝速 K10 三防平板在工业恶劣工况下的选型与应用指南
大数据·运维·数据库·人工智能·科技
bksczm12 分钟前
MySQL基础篇之视图与用户管理
linux·数据库·sql·mysql
Ahtacca25 分钟前
Linux 基础实验:从终端操作到 C 语言编译
linux·运维·运维开发·虚拟机
邪修king25 分钟前
Re:Linux 系统篇(二十九):动静态库Chapter2:动态库深度辨析 —— 核心本质、制作流程、双阶段查找模型与排错指南
android·java·linux·开发语言
智能运维指南29 分钟前
持续集成平台怎么选?从Jenkins迁移、信创适配到质量门禁的全维评估
运维·devops·嘉为蓝鲸
步行cgn1 小时前
Spring 注入 List 集合详解
windows·spring·list