使用 FQDN 訪問 Samba 共享的問題
我有一個新的 Centos 8 伺服器,我正在為客戶端設置,它給我在 AD DC 上設置網路共享帶來了最大的麻煩。
我已經在Google上搜尋了幾個小時,但我沒有找到任何幫助。很多結果都是幾年前的,我認為不適用於較新的版本。經過幾個這樣的時刻,也許這個執行緒將來會對某人有所幫助。
我考慮過的一個問題是,在域配置期間,我的預設 NETBIOS 名稱是
LOCALHOST
並且我從未更改過它,因此它可能會導致在其他機器上解決問題。我嘗試過更改它,但我可能無法正確更改所有內容,因為這樣做會導致連接到域完全失敗。目前我可以使用 3 種不同的方法訪問我的網路伺服器,每種方法都有自己的錯誤
1. 打開
\\OFFICE
Connecting to just the shortname 會顯示所有正在共享的文件和列印機,但它們都無法連接。
嘗試連接到其中一個共享會出現錯誤
\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
以下是我的配置
配置文件
# 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.conf
[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
經過更多的探勘和玩耍,我發現我手頭有兩個問題。
首先是我如何連接到伺服器。
\\OFFICE
,\\office.mydomain.com
, 和\\192.168.1.2
all connect,但實際上沒有一個被認為是 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
但我相信在該共享中儲存其他文件可能不是最好的主意。