
我不久前安裝了 Ubuntu 19.10。我想使用它的方式之一是作為文件伺服器。使用 Gnome GUI,我在名為 UbuntuShare 的資料夾上啟用了共享,並根據提示單擊以啟用 Samba。我已選中這些框,以便任何人都可以存取共享並設定所有人的讀/寫權限。
隨之而來的是一些奇怪的事情。
在UbuntuShare資料夾中,已經建立了一個名為core的檔案。它上面有一個橘色的鎖符號和紅色的 X 符號。另一個共用資料夾也發生過這種情況。我最終刪除了該資料夾以擺脫它,但該資料夾又發生了這種情況。我在網上搜索過,但找不到任何相關信息,所以我不知道這是否正常,但這看起來很奇怪。
我可以從 Windows 10 筆記型電腦上檢視和存取 UbuntuShare 資料夾,但前提是我要輸入電腦名稱或 IP 位址。它不會顯示在網路分享畫面上。非常奇怪的是,我還有另外兩個桌面,即使我輸入電腦名稱或 IP 位址,它們也看不到它。三台機器都是Windows 10,我檢查了三台機器上的網路共用設置,它們是相同的。唯一的區別是我的筆記型電腦位於我辦公室的網域中,而桌上型電腦位於標準工作組中。
我建立了幾個 Word 文件並將其從筆記型電腦儲存到 Ubuntu 上的 Samba 共用。當我在 Ubuntu 機器上時,它上面有一個鎖符號。當我在 GUI 中查看權限時,它說我不擁有這些文件,並且無法修改權限。如何做到這一點,這樣我就不會遇到 Windows 機器新增的歸檔問題?
我擔心我不知何故搞砸了 Samba。在我意識到 Gnome GUI 有一種共享方式之前,我按照我發現的一些命令列指令為早期版本的 Ubuntu 安裝 Samba。當我意識到 GUI 更簡單後,我在 Samba 上執行了 sudo apt purge 來刪除我所做的一切,希望將其清除。
我的目標是實現共享,以便我可以輕鬆共享文件以供 Windows 電腦存取。我的小學生使用這兩台 Windows 10 計算機,因此我不想必須進行身份驗證才能存取 Samba 伺服器。另外,如果核心文件正常,那就沒問題。如果沒有,我想修復它。
我將不勝感激任何幫助。
艾瑞克
答案1
- 若要檢查奇怪資料夾的內容並能夠將其刪除,請使用終端機。
- 在終端機視窗中使用命令轉到您的資料夾
cd
:cd /home/$USER/UbuntuShare
ls -ailh
透過命令檢查這個奇怪文件的所有者和權限
如果你確實想刪除該文件,你可以使用sudo rm -fr /pathto/UbuntuShare/core
但最好還是透過 來檢查一下裡面的內容sudo cat /home/$USER/UbuntuShare/core
。
在您的情況下,您共享了預設smb.conf
檔案而沒有配置共享。要配置它,請將 next 添加到您的末尾/etc/samba/smb.conf
:
[SambaShare]
# replace yourusername by your real user's name
path = /home/yourusername/UbuntuShare
writable = yes
guest ok = yes
guest only = yes
read only = no
create mode = 0777
directory mode = 0777
force user = nobody
另請確保您的資料夾具有所需的權利和所有權:
sudo chown -R nobody:nogroup /home/$USER/UbuntuShare
sudo chmod -R 0777 /home/$USER/UbuntuShare
然後重新啟動 samba 服務:
sudo systemctl restart smbd nmbd
另外,在防火牆中允許 samba:
sudo ufw allow samba
更新1:
在 Windows 10 版本 1511 中,預設會停用對 SMBv1 的支持,從而停用 NetBIOS 裝置發現。根據實際版本,從版本 1709(「秋季創意者更新」)開始的更高版本的 Windows 不再允許安裝 SMBv1 用戶端。這會導致執行 Samba 的主機不會列在資源管理器的「網路(鄰居)」視圖中。雖然不存在連線問題且 Samba 仍然可以正常運行,但使用者可能希望 Windows 自動列出他們的 Samba 主機。
使 samba 在 Ubuntu 18.04、19.10 上工作並在 Windows 10 版本 1909 共享網路中可見西德
使用終端執行下一步:
cd ~/
sudo apt install git
git clone https://github.com/christgau/wsdd
cd wsdd
sudo cp etc/systemd/wsdd.service /etc/systemd/system/
sudo cp src/wsdd.py /usr/bin/wsdd
sudo nano /etc/systemd/system/wsdd.service
Group=nobody
改成Group=nogroup
添加上面
ExecStart
:
Restart=on-failure
RestartSec=15
然後按下以下鍵退出:Ctrl+ X, then Y, thenEnter
sudo ufw allow 3702 && sudo ufw allow 5357
# 允許 wsdd 流量通過防火牆sudo systemctl enable wsdd.service
sudo systemctl start wsdd
systemctl status wsdd
看看它是否處於活動狀態
如果服務處於活動狀態,請刪除wsdd
資料夾:rm -fr ~/wsdd
另外,如果您不想麻煩自己進行此配置,並且您的 Ubuntu 電腦在 Windows 10 共享網路中的可見性並不重要,您可以將 Windows 檔案總管中的 UbuntuShare 資料夾拖放到快速存取項目在那裡建立了快捷方式。因此,您無需輸入 Ubuntu 機器的 IP 位址即可存取它。
更新2:如果 Windows 10 拒絕連線到您的 Ubuntu 共享,請嘗試將 SMB 協定指定為版本 2 或 3:
- 打開以編輯您的
smb.conf
文件:sudo nano /etc/samba/smb.conf
- 在
[global]
部分下輸入下一個:protocol = SMB3
如果您samba --version
是 4。 - 重新啟動 samba 服務:
sudo systemctl restart smbd nmbd
- 檢查您的 samba 服務是否正常:
systemctl status smbd nmbd
答案2
謝謝大家的指導和幫助。在發現這不太可能是 samba 問題後,我今天花了一些時間在 Windows 中搜尋可能的原因。
我瀏覽了下面的文章,按照解決方案進行操作,兩台桌上型電腦都立即能夠存取 samba 共享。
Microsoft 支援文章解決方案是基於:https://support.microsoft.com/en-us/help/4046019
電腦設定\管理範本\網路\Lanman Workstation“啟用不安全的來賓登入”
答案3
我現在無法在 Windows 上嘗試,但至少可以在 ubuntu 上運行。這是我從中取得的配置這裡我認為值得嘗試:
- 透過複製來備份目前
/etc/samba/smb.conf
檔案:sudo cp /etc/samba/smb.conf /etc/samba/bk.smb.conf
編輯您的
/etc/samba/smb.conf
:[global] workgroup = WORKGROUP server string = %h server (Samba, Ubuntu) netbios name = UBUNTU-POWERSPEC log file = /var/log/samba/log.%m max log size = 10240 security = user map to guest = Bad Password getwd cache = yes guest account = nobody usershare allow guests = Yes server signing = auto passdb backend = tdbsam local master = yes vfs objects = acl_xattr map acl inherit = yes store dos attributes = yes winbind nss info = template winbind enum users = Yes winbind enum groups = Yes winbind use default domain = yes client use spnego = yes client ntlmv2 auth = yes encrypt passwords = yes local master = No hide dot files = No allow insecure wide links = yes store dos attributes = yes
重新啟動 samba 服務:
sudo systemctl restart smbd nmbd
檢查 samba 服務狀態:
sudo systemctl status smbd nmbd
答案4
跟隨這些說明。為了獲得最大可用性,請確保伺服器上的 SAMBA 帳戶使用者名稱(與伺服器使用者名稱分開)與您用於存取共享的 Windows 帳戶的使用者名稱相符。