我有一台全新的 Centos 8 服务器,正在为客户设置,但它给我在 AD DC 上设置网络共享带来了最大的麻烦。
我在谷歌上搜索了几个小时,但什么也没找到。很多结果都是几年前的,我认为不适用于新版本。之后这些时刻,也许这个线程将来会对某些人有所帮助。
我考虑过的一个问题是,在域配置期间,我的默认 NETBIOS 名称是,LOCALHOST
而且我从未更改过它,因此它可能会导致其他机器出现问题。我尝试过更改它,但我可能没有正确地更改所有内容,因为这样做会导致与域的连接完全失败。
目前我可以使用 3 种不同的方法访问我的网络服务器,每种方法都有各自的错误
1. 开场\\OFFICE
仅连接到短名称会显示所有正在共享的文件和打印机,但都无法连接。
尝试连接到其中一个共享时出现错误
\\OFFICE\public 无法访问。您可能没有权限使用此网络资源。请联系此服务器的管理员,了解您是否有访问权限。
已访问一个卷,该卷需要尚未加载的文件系统驱动程序。
2. 开场\\office.mydomain.com
通过这种方式连接,我可以访问所有网络打印机,但只有sysvol
和netlogon
是可访问的驱动器。尝试连接到任何其他驱动器时会出现此错误
\\office.mydomain.com\public 无法访问。您可能没有权限使用此网络资源。请联系此服务器的管理员,了解您是否有访问权限。
未找到元素。
3. 开场\\192.168.1.2
尝试使用控制器 IP 地址连接适用于所有打印机和网络共享除了对于netlogon
和sysvol
。尝试打开任一默认驱动器都会提示登录,即使有帐户也会失败OFFICE\administrator
。
我的论点是,驱动器共享实际上不被视为域的一部分,但尝试从非域帐户访问位置会提示域登录。
我还花了几个小时研究 DNS,认为这可能是问题所在,但如果 NETBIOS 没有LOCALHOST
问题,除了无法访问目录外,共享没有任何问题。打印机工作正常,ping 服务器正常,nslookup
返回正确结果,SSH 与域正常工作。我对 Samba 不够熟悉,不知道是什么处理共享的映射,例如。\public
运行的版本:
$: smbd -V
Version 4.12.3
我的所有目录均正确显示
$: smbclient -L localhost -U%
Sharename Type Comment
--------- ---- -------
sysvol Disk
netlogon Disk
public Disk
share1 Disk
share2 Disk
share3 Disk
share4 Disk
users Disk
IPC$ IPC IPC Service (Samba 4.12.3)
Printer1 Printer EPSON WF-7520 Series
Printer2 Printer EPSON ET-3750 Series
Printer3 Printer EPSON ET-3750 Series
Printer4 Printer Brother QL-710W
Printer5 Printer EPSON ET-3750 Series
SMB1 disabled -- no workgroup available
以下是我的配置
smb配置文件
# Global parameters
[global]
# Realm information
netbios name = LOCALHOST
realm = OFFICE.MYDOMAIN.COM
server role = active directory domain controller
disable netbios = no
smb ports = 139 445
# DNS is controlled by BIND
server services = rpc, nbt, wrepl, ldap, cldap, kdc, drepl, winbind, ntp_signd, kcc, s3fs
# Work group
workgroup = OFFICE
idmap_ldb:use rfc2307 = yes
# Log from user IPs
log file = /var/log/samba/%m.log
#log level = 5
# Printing servers with Cups!
printing = cups
printcap name = cups
load printers = yes
cups options = raw
# Mapped drive configs
map archive = no
map readonly = no
# Home Directories
logon drive = H:
logon home = \\office.mydomaincom\users\%U
# Winbindd
winbind cache time = 10
winbind nss info = rfc2307
winbind use default domain = yes
winbind enum users = yes
winbind enum groups = yes
template shell = /bin/bash
template homedir = /home/%D/%U
# WINS
domain logons = yes
preferred master = yes
domain master = yes
#wins support = yes
#host msdfs = yes
time server = yes
# DNS
dns forwarder = 192.168.1.2
# Enable FreeRADIUS authorization
ntlm auth = mschapv2-and-ntlmv2-only
# Generic system volume
[sysvol]
path = /usr/local/samba/var/locks/sysvol
read only = no
# Net login scripts
[netlogon]
path = /usr/local/samba/var/locks/sysvol/office.mydomain.com/scripts
read only = no
# Shared printers
[printers]
comment = All Printers
path = /var/spool/samba/
printable = yes
create mask = 0600
browseable = no
# Share for all companies
[public]
path = /srv/samba/public
read only = no
[share1]
path = /srv/samba/share1
read only = no
[share2]
path = /srv/samba/share2
read only = no
[share3]
path = /srv/samba/share3
read only = no
[share4]
path = /srv/samba/share4
read only = no
# User home directory
[users]
path = /srv/samba/home
read only = no
krb5配置文件
[libdefaults]
default_realm = OFFICE.MYDOMAIN.COM
dns_lookup_realm = true
dns_lookup_kdc = true
[realms]
OFFICE.MYDOMAIN.COM = {
default_domain = office.mydomain.com
}
[domain_realm]
localhost = OFFICE.MYDOMAIN.COM
nsswitch.conf
passwd: files winbind
group: files winbind
netgroup: files winbind
automount: files winbind
services: files winbind
# In order of likelihood of use to accelerate lookup.
shadow: files winbind
hosts: dns myhostname
aliases: files
ethers: files
gshadow: files
# Allow initgroups to default to the setting for group.
# initgroups: files
networks: dns
protocols: files winbind
publickey: files
rpc: files
答案1
经过更多的挖掘和尝试后,我发现我面临两个问题。
首先是我如何连接到服务器。\\OFFICE
,,\\office.mydomain.com
等等\\192.168.1.2
连接,但它们实际上都没有被识别为 DC 的完全组成部分。我必须将 NETBIOS 名称合并到 FQDN 中并连接到\\localhost.office.mydomain.com
。从这里所有打印机,和已识别共享(包括netlogon
和sysvol
)。这可能在其他地方可以更改,但这可以满足我的需求。
其次是文件夹权限问题,
$: ls -ld sysvol/
drwxrwx---+ 9 root BUILTIN\administrators 135 Jul 9 09:24 sysvol/
$: ls -ld /srv/samba
drwxrwx---. 3 root root 22 Jul 9 09:15 /srv/samba
我测试将我的共享移入sysvol
共享,此时连接它们没有任何问题。因此,我检查了sysvol
共享上的权限,发现它归BUILTIN\administrators
组所有,这是我的分享归所有,但父文件夹也需要该权限,否则 samba 将无法正确读取共享。
一旦我弄清楚我的共享在内部工作,sysvol
我就会将权限重新应用于我的/srv/samba
目录,并将其移回。我还没有 100% 确定,sysvol
但我认为在该共享中存储其他文件可能不是最好的主意。