Linux

我可以連接到 Samba 伺服器,但無法訪問共享。

  • June 2, 2014

我無法讓 samba 共享工作以訪問共享。

我已經設置了一個執行 Fedora 16 的獨立機器,用作文件共享和 Web 開發伺服器。它需要能夠與 Windows 7 PC 和執行 OSX Snow Leopard 的 Mac 共享文件。

我已經使用 Fedora 上的 Samba 配置 GUI 工具設置了 Samba。將使用者添加到 Fedora 並將他們連接為 Samba 使用者(與 Windows 和 Mac 使用者名和密碼相同)。工作組名稱與 Windows 工作組相同。身份驗證設置為使用者。我已允許 Samba 和 Samba 客戶端通過防火牆,並將乙太網設置為防火牆中的受信任埠。

Windows 和 Mac 機器都可以連接到伺服器並查看共享,但是當嘗試訪問共享時,Windows 會拋出錯誤:

0x80070035 " Windows cannot access \\SERVERNAME\ShareName." 

訪問伺服器時不會提示 Windows 使用者輸入使用者名或密碼(位於“網路上的芳鄰”下)。使用 IP 而不是伺服器名稱連接時也會發生這種情況。

Mac 也可以連接到伺服器並查看共享,但是在選擇共享時會出現錯誤:

The original item for ShareName cannot be found.

通過 IP 連接時,系統會提示 Mac 使用者輸入使用者名和密碼,在通過身份驗證時會提供共享列表,但是在選擇要連接的共享時,會顯示錯誤並且使用者無法訪問共享。

由於在嘗試訪問共享時兩台機器的行為相似,我認為這是 Samba 配置方式的問題。

smb.conf:

[global]

   workgroup = workgroup
   server string = Server
   log file = /var/log/samba/log.%m
   max log size = 50
   security = user
   load printers = yes
   cups options = raw
   printcap name = lpstat
   printing = cups


[homes]
   comment = Home Directories
   browseable = no
   writable = yes


[printers]
   comment = All Printers
   path = /var/spool/samba
   browseable = yes
   printable = yes

[FileServ]
   comment = FileShare
   path = /media/FileServ
   read only = no
   browseable = yes
   valid users = user1, user2

[webdev]
   comment = Web development
   path = /var/www/html/webdev
   read only = no
   browseable = yes
   valid users = user1

如何讓 samba 共享工作?

更新:我想通了,這是因為我正在共享第二個硬碟。請參閱下面的已檢查答案。

推測1:在這個盒子之前,我有另一個盒子,安裝了相同版本的fedora (16),samba 在這些相同的電腦上工作。我啟動了舊機器並將 smb.conf 文件從舊機器複製到新機器(當然是編輯新共享的共享定義),我仍然在兩台客戶端機器上遇到相同的錯誤。環境的唯一區別是硬體和路由器。在舊機器上,路由器接收到動態公共 IP 並為網路上的每個設備分配動態私有 IP,而新機器連接到具有靜態公共 IP(儘管仍然是動態內部 IP)的路由器。其中任何一個都可以會影響桑巴舞嗎?

推測2:由於我要共享的目錄實際上是一個完整的內部磁碟,所以我嘗試了這些東西:

1.) 將已掛載磁碟的所有者從 root 更改為我的使用者(與 Windows 機器上的使用者名相同)

2.) 與我的使用者再次作為所有者共享了僅包含磁碟上的一個文件夾而不是整個磁碟的共享。

兩個測試都失敗了,給我關於網路地址的相同錯誤。

推測 3:每當我嘗試連接到 Windows 7 客戶端上的共享時,系統都會提示我輸入使用者名和密碼。當我輸入正確的憑據時,我會收到拒絕訪問消息。但是我確實注意到在登錄框下列出了“域:WINDOWS-PC-NAME”。我相信這很可能是問題所在。

推測 4:所以我現在已經完全重新安裝了 Fedora 和 Samba。我在第一個硬碟驅動器上創建了一個共享(安裝了一個 Fedora),我可以從 Windows 訪問它。但是,當我嘗試在第二個磁碟上共享任何數據時,我收到了同樣的錯誤。我相信這是問題所在。我想我需要在 fstab 或 fdisk 或其他東西中更改一些東西。

推測 5:所以在 fstab 中,我將驅動器映射為自動掛載到一個正常工作的文件夾中。我還將 samba_share_t SElinux 標籤添加到掛載點目錄,現在允許我訪問 Windows 機器上的共享,但是我看不到 Windows 機器上目錄中的任何文件。(它們在那裡,我可以在本地的fedora文件瀏覽器中看到它們)

終於明白了。所以首先問題在於我試圖共享第二個硬碟驅動器,而不是安裝作業系統的同一驅動器上的數據。以下是能夠通過 Samba 共享第二個驅動器的步驟:(這些適用於內部安裝的驅動器,但我認為它也可能適用於外部驅動器)

1.) 您必須將驅動器設置為在 fstab 中自動掛載。添加:

/dev/sdbx /mountpoint ext3 auto 0 0

到 /etc/fstab,其中 x 是驅動器的分區號,“/media/mountpoint”是掛載目錄(我創建了一個名為 /share 的目錄並將驅動器掛載在那裡),“ext3”是文件系統

2.) 將掛載點的權限設置為 755:

chmod 755 /mountpoint

3.) 添加一個新的 SElinux 標籤“samba_share_t”並將這個標籤應用到掛載點

chcon -t samba_share_t /mountpoint

4.) 將這些權限應用於所有隨附的文件和文件夾。(我為此使用了 Gnome 的 GUI)

我可以從 Windows 7 PC 和執行 OSX 的 Mac 訪問共享。

引用自:https://serverfault.com/questions/395486