张腾岳 2025-04-28 04:50 采纳率: 98%
浏览 36
已采纳

Linux挂载SMB时提示“mount error(13): Permission denied”如何解决?

在Linux系统中挂载SMB共享时,如果遇到“mount error(13): Permission denied”错误,通常是由于权限配置不当或认证信息错误引起的。首先确认SMB服务器的共享目录是否对用户开放了正确的访问权限。检查SMB服务端的`smb.conf`文件中的`valid users`和`write list`设置。 其次,确保客户端提供的用户名和密码正确无误。可以尝试使用`//server/share`路径配合`-o username=USER,password=PASS`选项重新挂载。如果仍然失败,考虑使用`credentials`参数指向一个包含账号信息的文件。 另外,SELinux或防火墙可能干扰挂载过程。临时关闭SELinux(设置为`permissive`模式)或打开必要的SMB端口(如137、138、139、445),有助于排查问题根源。最后,升级`cifs-utils`到最新版本也可能解决兼容性问题。
  • 写回答

1条回答 默认 最新

  • 请闭眼沉思 2025-04-28 04:50
    关注

    1. 问题概述

    在Linux系统中挂载SMB共享时,如果遇到“mount error(13): Permission denied”错误,通常是由权限配置不当或认证信息错误引起的。以下是逐步分析和解决该问题的步骤。

    1.1 常见原因

    • 服务端权限配置错误(如`smb.conf`文件中的设置)。
    • 客户端提供的用户名或密码错误。
    • SELinux或防火墙干扰了挂载过程。
    • `cifs-utils`版本过旧导致兼容性问题。

    2. 服务端配置检查

    首先需要确认SMB服务器是否正确配置了访问权限。

    2.1 检查`smb.conf`文件

    打开SMB服务端的`smb.conf`文件,检查以下关键字段:

    [shared]
    path = /path/to/share
    valid users = user1, user2
    write list = user1
    read only = no
    

    确保`valid users`字段包含正确的用户列表,并且`write list`字段允许指定用户写入。

    3. 客户端挂载尝试

    接下来,在客户端进行挂载操作并验证认证信息。

    3.1 使用命令行挂载

    使用以下命令尝试挂载:

    sudo mount -t cifs //server/share /mnt -o username=USER,password=PASS
    

    如果仍然失败,可以将用户名和密码存储在一个文件中,并通过`credentials`参数引用:

    sudo mount -t cifs //server/share /mnt -o credentials=/path/to/credentials
    

    其中,`/path/to/credentials`文件内容如下:

    username=USER
    password=PASS
    

    4. 排查SELinux和防火墙干扰

    如果上述步骤未解决问题,可能是SELinux或防火墙的影响。

    4.1 SELinux排查

    临时将SELinux设置为`permissive`模式以排除其干扰:

    setenforce 0
    

    若问题解决,可进一步调整SELinux策略以允许SMB挂载。

    4.2 防火墙配置

    确保防火墙开放了必要的SMB端口(137、138、139、445)。使用以下命令添加规则:

    sudo firewall-cmd --add-port={137,138,139,445}/tcp --permanent
    sudo firewall-cmd --reload
    

    5. 软件升级与兼容性检查

    最后,检查`cifs-utils`版本是否过旧:

    cifs-utils --version
    

    如果版本较旧,建议升级到最新版本:

    sudo apt-get update && sudo apt-get install cifs-utils
    

    6. 流程图总结

    以下是排查问题的整体流程图:

    graph TD;
        A[开始] --> B{检查smb.conf};
        B --权限配置错误--> C[修正valid users/write list];
        B --无误--> D{测试挂载};
        D --失败--> E{检查用户名/密码};
        E --仍失败--> F{使用credentials文件};
        F --仍失败--> G{排查SELinux};
        G --仍失败--> H{配置防火墙};
        H --仍失败--> I{升级cifs-utils};
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已采纳回答 10月23日
  • 创建了问题 4月28日