You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Samba共享目录NT_STATUS_ACCESS_DENIED权限错误求助

Samba共享目录NT_STATUS_ACCESS_DENIED权限错误求助

问题描述

我正在尝试给Jellyfin服务器的媒体文件夹创建SAMBA共享,已经通过ISPC用户界面创建了一个有Shell访问权限的用户,并且能通过SAMBA访问该用户网站的web文件夹。

我新建了一个名为media的SAMBA共享,指向/media/data/jellyfin/media,但从客户机访问这个共享时什么都做不了——比如执行简单的ls命令,就会报错NT_STATUS_ACCESS_DENIED listing *。

想请教有没有办法解决这个SAMBA权限问题?

测试命令及输出

执行以下命令尝试连接共享:

# smbclient //XXXXXX/media -U XXXXXX

输出结果:

Password for [MGS\XXXXXX]:
Try "help" to get a list of possible commands.
smb: > ls
NT_STATUS_ACCESS_DENIED listing *
smb: >

权限列表信息

执行命令查看共享权限配置:

# sudo net usershare info --long

输出结果:

[media]
path=/media/data/jellyfin/media
comment=
usershare_acl=XXXXXX\XXXXXX:F,
guest_ok=n

[server]
path=/var/www/clients/client1/web2/web
comment=
usershare_acl=XXXXXX\XXXXXX:F...


排查与解决步骤

你好,针对你遇到的SAMBA共享权限问题,我帮你梳理几个实用的排查和解决步骤:

1. 先检查Linux文件系统本身的权限

SAMBA的权限是建立在底层Linux文件系统权限之上的,哪怕SAMBA配置给了全权限,如果Linux层面用户没权限也会报错。

  • 执行以下命令查看目标目录的权限和用户信息:
    ls -ld /media/data/jellyfin/media
    id XXXXXX  # 替换成你的SAMBA用户名
    
  • 确保你的用户XXXXXX对该目录拥有读+执行权限(至少这两个权限才能执行ls),如果需要写入还要有写权限。如果权限不足,可以用以下命令调整:
    # 将目录及其子文件/目录的所有者改成你的SAMBA用户(组可按需调整)
    sudo chown -R XXXXXX:XXXXXX /media/data/jellyfin/media
    # 给用户赋予读、写、执行权限,其他角色权限可根据需求调整
    sudo chmod -R u+rwx /media/data/jellyfin/media
    

2. 检查SAMBA共享的配置细节

从你给出的net usershare info输出看,已经给用户分配了完全控制权限,但有时候usershare的配置可能不够灵活,建议尝试手动在SAMBA主配置文件里添加共享:

  • 编辑/etc/samba/smb.conf文件,在末尾添加以下配置:
    [media]
        path = /media/data/jellyfin/media
        valid users = XXXXXX
        read only = no
        create mask = 0644
        directory mask = 0755
        browseable = yes
    
  • 保存后重启SAMBA服务:
    sudo systemctl restart smbd nmbd
    
    然后重新测试连接。

3. 排查SELinux或AppArmor的限制

如果你的服务器开启了安全增强工具,可能会阻止SAMBA访问非默认目录:

  • SELinux(适用于RHEL/CentOS等):临时关闭SELinux测试是否能访问:
    sudo setenforce 0
    
    如果测试正常,就给目录添加对应的SELinux上下文,让SAMBA可以访问:
    sudo semanage fcontext -a -t samba_share_t "/media/data/jellyfin/media(/.*)?"
    sudo restorecon -Rv /media/data/jellyfin/media
    
  • AppArmor(适用于Debian/Ubuntu等):检查SAMBA的AppArmor配置文件(通常在/etc/apparmor.d/目录下),确认是否允许访问/media/data/jellyfin/media目录,必要时修改配置后重启AppArmor服务。

4. 验证SAMBA用户映射

确保你的Linux用户已经被正确添加到SAMBA用户数据库中:

  • 执行以下命令添加或更新SAMBA用户密码:
    sudo smbpasswd -a XXXXXX
    
    输入密码后重新测试共享连接。

备注:内容来源于stack exchange,提问作者razor7

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 11:04:32