多用户Samba挂载

本文档详细介绍了如何在Linux环境下通过Samba实现多用户挂载,包括永久挂载Samba共享目录、配置开机挂载、启用multiuser支持以及在不同用户间切换权限访问共享资源的步骤。通过cifs-utils软件包和cifscreds命令,实现了在不重新挂载共享资源的情况下切换用户身份。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2.1 问题
本例要求在虚拟机 desktop0 上访问 server0 提供的共享 devops,特性如下:
1.将此共享永久挂载在 /mnt/dev 目录
2.挂载时以用户 kenji 作为认证
3.必要的时候,任何普通用户都可以通过用户 chihiro 来临时获取写的权限
2.2 方案
Samba客户端的multiuser挂载:支持切换访问Samba共享的用户身份,但不需要重新挂载共享资源。挂载参数需要添加“multiuser,sec=ntlmssp”,客户机上的普通用户可以通过cifscreds命令提交新的身份凭据。
在客户端挂载Samba共享目录,需要软件包cifs-utils的支持。
为访问网络资源配置开机挂载时,注意添加参数“_netdev”,表示等客户机网络配置可用以后才挂载对应资源。
2.3 步骤
实现此案例需要按照如下步骤进行。
步骤一:挂载Samba共享目录
1)创建挂载点
1.[root@desktop0 ~]# mkdir /mnt/dev
2)安装cifs-utils软件包
1.[root@desktop0 ~]# yum -y install cifs-utils
2… …
3)配置开机挂载
1.[root@desktop0 ~]# vim /etc/fstab
2… …
3.//server0.example.com/devops /mnt/dev cifs username=kenji,password=atenorth,_netdev     0     0
4)测试挂载配置
1.[root@desktop0 ~]# mount -a
2.[root@desktop0 ~]# df -hT /mnt/dev
3.Filesystem Type Size Used Avail Use% Mounted on
4.//server0.example.com/devops cifs 10G 3.2G 6.8G 32% /mnt/dev
步骤二:启用multiuser多用户支持
1)修改挂载配置,添加多用户支持
1.[root@desktop0 ~]# vim /etc/fstab
2… …
3.//server0.example.com/devops    /mnt/dev    cifs    username=kenji,password=atenorth,multiuser,sec=ntlmssp,_netdev 0 0
4.[root@desktop0 ~]# umount /mnt/dev                 //卸载此共享
5.[root@desktop0 ~]# mount /mnt/dev                 //重新挂载此共享
2)验证多用户访问
切换到普通用户student验证,无权访问挂载点/mnt/dev:
1.[root@desktop0 ~]# su - student
2.Last login: Sun Nov 27 03:51:32 CST 2016 on pts/0
3.[student@desktop0 ~]$ ls /mnt/dev
4.ls: cannot access /mnt/dev: Permission denied
以共享用户chihiro身份提交新的访问凭据,再次验证,对挂载点/mnt/dev可读写:
1.[student@desktop0 ~]$ cifscreds -u chihiro add server0.example.com
2.Password:                                         //输入共享账号chihiro的密码
3.[student@desktop0 ~]$ touch /mnt/dev/a.txt
4.[student@desktop0 ~]$ ls /mnt/dev/a.txt
5./mnt/dev/a.txt

<think>好的,我现在需要解决用户遇到的Samba挂载错误:“No dialect specified on mount”。这个问题看起来和Samba客户端的配置有关。首先,我得回忆一下Samba的版本变化和相关配置参数的调整。 用户提到参考的引用是关于Samba 2.0.0之前默认使用security = share,但现在可能已经发生了变化。新的Samba版本可能不再支持某些旧的参数,导致挂载时出现方言未指定的错误。 首先,我应该检查用户使用的mount命令是否正确。常见的挂载命令是使用mount -t cifs,但可能需要指定版本选项,比如vers=1.0、2.0或3.0。因为从Samba 4.0之后,默认的协议版本可能更高,而旧服务器可能不支持,所以客户端需要明确指定版本。 另外,错误信息中的“No dialect specified”可能意味着mount.cifs需要显式声明SMB协议版本(方言)。解决方法是在挂载命令中添加vers=选项,例如vers=2.0或vers=3.0,具体取决于服务器支持的版本。 此外,用户可能需要安装cifs-utils软件包,确保挂载所需的工具可用。同时,检查用户名、密码和共享路径是否正确,以及网络连接是否正常。 总结可能的解决步骤:更新挂载命令,添加vers参数;确认服务器支持的SMB版本;安装必要工具包;检查凭据和网络设置。最后,建议用户查看系统日志获取更多错误细节,或者联系服务器管理员确认协议版本。</think>针对Samba挂载时出现的错误`No dialect specified on mount`,以下是分步解决方案: --- ### **1. 确认挂载命令语法** 挂载命令需使用`-o vers=`参数明确指定SMB协议版本(方言)。 **旧版本语法(已过时)**: ```bash mount -t cifs //server/share /mnt -o username=user,password=pass ``` **修正后的语法**: ```bash mount -t cifs //server/share /mnt -o username=user,password=pass,vers=2.0 ``` - **关键参数**:`vers=2.0`(或`vers=3.0`,需与服务器支持的SMB版本一致)[^1] --- ### **2. 确定服务器支持的SMB版本** 联系服务器管理员或通过以下命令测试(需安装`smbclient`): ```bash smbclient -L //server/share -m SMB3 ``` 若失败,尝试替换`SMB3`为`SMB2`或`SMB1`,观察兼容版本。 --- ### **3. 安装必要工具包** 确保系统已安装`cifs-utils`: ```bash sudo apt install cifs-utils # Debian/Ubuntu sudo yum install cifs-utils # CentOS/RHEL ``` --- ### **4. 完整挂载命令示例** ```bash mount -t cifs //192.168.1.100/shared /mnt/samba -o username=user,password=pass,vers=2.0,uid=1000,gid=1000,dir_mode=0755,file_mode=0644 ``` - `uid/gid`:设置挂载目录的用户/组权限 - `dir_mode/file_mode`:目录和文件的权限掩码 --- ### **5. 持久化挂载配置(/etc/fstab)** 在`/etc/fstab`中添加: ```bash //server/share /mnt/samba cifs username=user,password=pass,vers=2.0,uid=1000,gid=1000,dir_mode=0755,file_mode=0644 0 0 ``` 执行`mount -a`重新挂载。 --- ### **根本原因分析** Samba从4.11版本开始弃用未明确指定方言的挂载请求,强制要求声明协议版本。此变更旨在提高安全性,但需客户端主动适配。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值