排除 SAMBA 上的访问被拒绝故障

排除 SAMBA 上的访问被拒绝故障

我是 SAMBA 新手,但已在 Ubuntu 20.04 桌面上设置了 SAMBA 服务器,但在尝试从我的 Windows 11 笔记本电脑映射任何 SAMBA 共享时,始终出现“访问被拒绝”的情况。我该如何解决问题?以下是我认为 smb.conf 的相关部分:

[global]
server role = standalone server
obey pam restrictions = yes
security = user
encrypt passwords = true
map to guest = bad user
guest account = nobody

[media]
path=/data/media
valid users = @media
  guest ok = no
  writable = yes
  browsable = yes
[public]
path=/data/public
valid users = @smbgroup
  guest ok = no
  writable = yes
  browsable = yes

[documents]
path=/data/documents
valid users = @simon
  guest ok = no
  writable = yes
  browsable = yes
[downloads]
path=/data/downloads
valid users = @media
  guest ok = no
  writable = yes
  browsable = yes

以下是相关共享文件夹的权限:

root@KTchia01:/data# ls -l
total 100375
drwxrwx---  8 simon simon           27 Jun  8  2021 documents
drwxrwx---  2 simon simon            6 Jun  8  2021 downloads
drwxrwxr-x 16 simon media           17 Jun 10  2021 media
-rw-r--r--  1 chia  chia     102672297 Jun  8  2021 oldhome.tgz
drwxrwxrwx  2 simon smbgroup         2 Feb  5 21:20 public

我以用户 simon 的身份从 Windows 11 笔记本电脑 KTLAPTOP02 进行连接,simon 是 Linux 机器上的普通用户,并且已设置 SMB 密码。simon 的组成员身份:

root@KTchia01:~# grep simon /etc/group
adm:x:4:syslog,simon,chia
cdrom:x:24:simon
sudo:x:27:simon,chia
dip:x:30:simon
plugdev:x:46:simon
lpadmin:x:120:simon
lxd:x:131:simon
simon:x:1000:
sambashare:x:132:simon
smbgroup:x:1001:simon
plex:x:998:simon,plex
media:x:1002:simon,plex
chia:x:1003:simon

尝试连接时日志输出:

root@KTchia01:/var/log/samba# tail -f log.ktlaptop02
[2022/02/05 21:41:36.200402,  2] ../../source3/param/loadparm.c:2864(lp_do_section)
  Processing section "[public]"
[2022/02/05 21:41:36.200454,  2] ../../source3/param/loadparm.c:2864(lp_do_section)
  Processing section "[documents]"
[2022/02/05 21:41:36.200509,  2] ../../source3/param/loadparm.c:2864(lp_do_section)
  Processing section "[downloads]"
[2022/02/05 21:41:36.212158,  1] ../../source3/smbd/service.c:362(create_connection_session_info)
  create_connection_session_info: user 'simon' (from session setup) not permitted to access this share (IPC$)
[2022/02/05 21:41:36.212187,  1] ../../source3/smbd/service.c:543(make_connection_snum)
  create_connection_session_info failed: NT_STATUS_ACCESS_DENIED

有人能指出我如何进一步排除故障的正确方向吗?为什么无论我尝试访问哪个共享,都会被拒绝访问?

答案1

以下是一些很好的故障排除步骤,厚颜无耻地从服务器故障

  1. 也许您的 Windows 主机在用户名前添加了错误的域名。在 Windows 计算机上,尝试使用localhost\simon用户名登录
  2. 发出sudo pdbedit -L(必须以 root 身份运行)并检查是否simon列出了用户。如果是,请使用以下命令设置一个简单的密码(您可以稍后更改)smbpasswd simon
  3. 如果simon未列出用户,请尝试重新创建并发出smbpasswd -a simon
  4. 如果不起作用,请删除 passwd 文件(该文件名为passwd.tdb;供参考,它位于 下/var/lib/samba/private/)。然后,重新创建您的用户,发出smbpasswd -a simon
  5. 如果仍然不起作用,请尝试使用 root 帐户发出smbpasswd -a root并检查您是否可以使用 root 用户登录。注意:这只是一次尝试。完成后,您必须删除 root 的条目发出smbpasswd -x root
  6. 最后的办法是增加日志的详细程度,看看能否从中找到线索。对于身份验证尝试,请在smb.conf:上编辑或添加以下行log level = 2 winbind:5,使用类似命令检查日志tail -f /var/log/samba/log*,然后尝试登录。

希望其中能有所帮助。

答案2

我遇到了同样的问题,最终找到了如上所述的解决方案这里

更新或配置不正确后,AppArmor 和 Samba 可能会互相干扰。建议的解决方案是激活 AppArmor 的 smbd 的投诉模式:

sudo aa-complain /etc/apparmor.d/usr.sbin.smbd

但是您也可以添加站点特定的附加内容来/etc/apparmor.d/local/usr.sbin.smbd获取访问权限。

相关内容