当我尝试在 Fedora 29 上设置 Samba 共享时,我发现它无法通过网络访问。经过进一步检查,我还发现它也无法从本地机器访问。
我已经研究了几个小时但找不到问题的根源。
我的smb.conf
(两台机器相同):
[global]
workgroup = WORKGROUP
server string = Samba server (%v) on %h
hosts allow = 127. 10.0.1.
ntlm auth = yes
log file = /var/log/samba/log.%m
max log size = 50
security = user
passdb backend = tdbsam
load printers = yes
cups options = raw
[mattd]
path = /home/mattd
comment = Share
writable = yes
valid users = mattd
Samba 服务处于活动状态并正在运行:
smb.service - Samba SMB Daemon
Loaded: loaded (/usr/lib/systemd/system/smb.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2019-01-31 04:57:12 EST; 3min 36s ago
Docs: man:smbd(8)
man:samba(7)
man:smb.conf(5)
Main PID: 26861 (smbd)
Status: "smbd: ready to serve connections..."
Tasks: 4 (limit: 4915)
Memory: 9.0M
CGroup: /system.slice/smb.service
├─26861 /usr/sbin/smbd --foreground --no-process-group
├─26863 /usr/sbin/smbd --foreground --no-process-group
├─26864 /usr/sbin/smbd --foreground --no-process-group
└─26865 /usr/sbin/smbd --foreground --no-process-group
Jan 31 04:57:12 minedlands systemd[1]: Starting Samba SMB Daemon...
Jan 31 04:57:12 minedlands systemd[1]: Started Samba SMB Daemon.
Jan 31 04:57:12 minedlands smbd[26861]: [2019/01/31 04:57:12.514592, 0] ../lib/util/become_daemon.c:138(daemon_ready)
Jan 31 04:57:12 minedlands smbd[26861]: daemon_ready: STATUS=daemon 'smbd' finished starting up and ready to serve connections
用户mattd
(我的帐户)正在运行,我可以通过 SSH 正常登录。
我为该用户创建了一个 Samba 帐户:
$ smbpasswd -a mattd
Samba账户已启用:
$ smbpasswd -e mattd
并且可以确认这个Samba账号存在:
$ pdbedit -L
mattd:1000:Matt D.
我已设置 SELinux 选项以允许访问主目录共享:
$ setsebool -P samba_enable_home_dirs 1
然而,SELinux 已被禁用以setenforce 0
进行测试。
Samba 可通过防火墙访问:
$ firewall-cmd --zone=public --permanent --add-service=samba
$ firewall-cmd --reload
当我尝试本地访问 Samba 共享(我通过 SSH 连接)时,我可以连接到 Samba 服务,它会要求我进行身份验证:
$ smbclient //localhost/mattd --user mattd
Enter WORKGROUP\mattd's password:
但我遇到了访问被拒绝错误:
session setup failed: NT_STATUS_ACCESS_DENIED
总之:
- 这是我的账户。
- 我有访问我自己的主目录(共享)的权限。
- 除了我的用户帐户之外,我还创建了必要的 Samba 帐户。
- 我通过localhost连接并与Samba服务实现通信。
- 该错误消息表明身份验证存在问题。
- SELinux 不是一个因素。
- 防火墙不是一个因素。
- 我的
smb.conf
与工作系统完全相同。 - 我已经重新启动了 Samba 服务。
Samba 版本:
- CentOS 7 正在运行 Samba 4.8.3。
- Fedora 29 正在运行 Samba 4.9.4。
我可以使用 Fedora 机器连接到 CentOS 机器,smbclient
因此可以进行连接。
我感觉我已经涵盖了所有基础知识,但就是行不通。虽然标题表明这两台机器的配置相同,但它们并不相同,或者这两个发行版之间存在一些需要注意的地方。
答案1
添加到 smb.conf
client lanman auth = yes