如何在 Linux 和 Windows 電腦之間共享文件
如果你使用不同的操作系統,能夠在它們之間共享文件會讓你倍感方便。這篇文章介紹如何使用 Samba 和 mount.cifs 在 Linux (Fedora 33)和 Windows 10 之間設置文件共享。
Samba 是 SMB/CIFS 協議的 Linux 實現,允許通過網路連接直接訪問共享的文件夾和印表機。 mount.cifs 是 Samba 套件的一部分,可讓你在 Linux 下掛載 CIFS 文件系統。
注意: 這些說明適用於在你的私有本地網路內,或在 Linux 宿主機和虛擬化的 Windows 訪客機之間的虛擬主機專用網路中共享文件。不要將本文視為你公司網路的操作指南,因為本文沒有實現必要的網路安全考慮。
從 Windows 訪問 Linux
本節介紹從 Windows 文件資源管理器訪問用戶的 Linux 主目錄。
1、安裝和配置 Samba
進入你的系統安裝 Samba:
dnf install samba
Samba 是一個系統守護進程,其配置文件位於 /etc/samba/smb.conf
。它的默認配置應該就可以工作。如果不行,下面這個最小化配置應該可以解決問題:
[global]
workgroup = SAMBA
server string = %h server (Samba %v)
invalid users = root
security = user
[homes]
comment = Home Directories
browseable = no
valid users = %S
writable = yes
你可以在該項目網站的 smb.conf 部分找到參數的詳細說明。
2、修改 LinuxSE
如果你的 Linux 發行版受 SELinux 保護(比如 Fedora),必須通過以下命令才能通過 Samba 共享主目錄:
setsebool -P samba_enable_home_dirs on
通過以下命令查看這個值:
getsebool samba_enable_home_dirs
輸出如下:
![Sebool](/data/attachment/album/202205/02/233906mxw5xkxgupp56xk8.png "Enabling Samba to enable user directory access")
3、啟用你的用戶
Samba 使用一組用戶/密碼來管理連接許可權。通過鍵入以下命令將你的 Linux 用戶添加到該集合中:
smbpasswd -a <你的用戶名>
系統提示你輸入密碼。這是一個 全新 的密碼;而不是你賬戶的當前密碼。請輸入你想用來登錄 Samba 的密碼。
鍵入以下命令得到有 Samba 使用許可權的用戶列表:
pdbedit -L -v
鍵入以下命令刪除一個用戶:
smbpasswd -x <用戶名>
4、開啟 Samba
既然 Samba 是一個系統守護進程,你可以在 Fedora 上鍵入以下命令啟動它:
systemctl start smb
這將為當前會話開啟 Samba 服務。如果想讓它自啟動,鍵入以下命令:
systemctl enable smb
在某些系統上,Samba 守護進程註冊為 smbd
。
4、配置防火牆
你的防火牆會默認阻攔 Samba。通過配置防火牆允許 Samba 能永久訪問網路。
你可以在命令行執行如下操作:
firewall-cmd --add-service=samba --permanent
或者,你可以使用 firewall-config
工具以圖形化方式進行操作:
![firewall-config](/data/attachment/album/202205/02/233907adbagpspbvrkv2az.png "firewall-config tool")
5、從 Windows 訪問 Samba
在 Windows 中,打開文件資源管理器。在地址欄中,鍵入兩個反斜杠(\
),緊跟你的 Linux 機器的地址(IP 地址或主機名):
![從 Windows 訪問 Linux](/data/attachment/album/202205/02/233907x04jd7i8v8tcuxkn.png "Accessing Linux machine from Windows")
系統將提示你輸入登錄信息。輸入第 3 步中的用戶名和密碼組合。你現在應該可以訪問 Linux 機器上的主目錄:
![從 Windows 訪問 Linux](/data/attachment/album/202205/02/233908sonkofsvzsqzvkeh.png "Accessing Linux machine from Windows")
從 Linux 訪問 Windows
以下步驟說明了如何從 Linux 訪問共享的 Windows 文件夾。要實現這一點,需要你的 Windows 用戶帳戶具有管理員許可權。
1、啟用文件共享
通過點擊 「Windows 按鈕」 > 「 設置 」 > 「 網路和 Internet 」 ,或者右鍵單擊任務欄右下角的小監視器圖標, 打開網路和共享中心 :
![打開網路和共享中心](/data/attachment/album/202205/02/233908jd5syp3s24od8jsp.png "Open network and sharing center")
在打開的窗口中,找到你要使用的連接並記下其配置文件。我使用了 乙太網 3,它被標記為 公用網路 。
注意:如果你的 PC 經常連接公用網路,請考慮將本地計算機的連接配置文件更改為 私有。
記住你的網路配置,然後單擊 更改高級共享設置 :
![更改高級共享設置](/data/attachment/album/202205/02/233909kece9tjceo9ctcs8.png "Change advanced sharing settings")
選擇與你的連接對應的配置文件並打開 網路發現 和 文件和印表機共享 :
![網路共享設置](/data/attachment/album/202205/02/233909eg8q000o5yn6io58.png "Network sharing settings")
2、定義一個共享文件夾
通過右鍵單擊你要共享的文件夾打開上下文菜單,導航到 授予訪問許可權 ,然後選擇 特定用戶... :
![授予訪問許可權](/data/attachment/album/202205/02/233909nx9dldkjtktl5xzk.png "Give access")
檢查你當前的用戶名是否在列表中。點擊 共享 將此文件夾標記為共享:
![標記為共享](/data/attachment/album/202205/02/233910wawhjxv727nvxvnr.png "Tag as shared")
你可以通過在文件資源管理器的地址欄中輸入 \localhost
來顯示所有共享文件夾的列表:
![共享文件夾](/data/attachment/album/202205/02/233910e9lzmi8pt9st9iyi.png "Shared folders")
![共享文件夾](/data/attachment/album/202205/02/233911isxutx5npu3nwn25.png "Shared folders")
3、在 Linux 下掛載共享文件夾
回到你的 Linux 系統,打開一個命令行,然後創建一個新文件夾,用於掛載 Windows 共享:
mkdir ~/WindowsShare
掛載 Windows 共享是使用 mount.cifs
完成的,它應該被默認安裝。使用如下命令臨時掛載你的共享文件夾:
sudo mount.cifs //<address-of-windows-pc>/MySharedFolder ~/WindowsShare/ -o user=<Windows-user>,uid=$UID
在這個命令里:
<address-of-windows-pc>
是 Windows PC 的地址信息(IP 或主機名)<Windows-user>
是允許訪問共享文件夾的用戶(見步驟 2)
系統將提示你輸入 Windows 密碼。之後,你將能夠使用普通 Linux 用戶訪問 Windows 上的共享文件夾。
要卸載共享文件夾:
sudo umount ~/WindowsShare/
你還可以在系統啟動時掛載 Windows 共享文件夾。按照 這些步驟 相應地配置你的系統。
總結
在這裡展示了如何建立臨時的文件夾共享訪問許可權,每次重啟後都要重新設置,因此修改成永久訪問會更便利。我經常在不同的系統之間來回切換,對我而言設置直接文件訪問非常實用。
via: https://opensource.com/article/21/4/share-files-linux-windows
作者:Stephan Avenwedde 選題:lujun9972 譯者:hanszhao80 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive