如何在 Linux 和 Windows 電腦之間共享文件
- 使用 Samba 設(shè)置跨平臺(tái)文件共享。
如果你使用不同的操作系統(tǒng),能夠在它們之間共享文件會(huì)讓你倍感方便。這篇文章介紹如何使用 Samba 和 mount.cifs 在 Linux (Fedora 33)和 Windows 10 之間設(shè)置文件共享。
Samba 是 SMB/CIFS 協(xié)議的 Linux 實(shí)現(xiàn),允許通過網(wǎng)絡(luò)連接直接訪問共享的文件夾和打印機(jī)。 mount.cifs 是 Samba 套件的一部分,可讓你在 Linux 下掛載 CIFS 文件系統(tǒng)。
注意: 這些說明適用于在你的私有本地網(wǎng)絡(luò)內(nèi),或在 Linux 宿主機(jī)和虛擬化的 Windows 訪客機(jī)之間的虛擬主機(jī)專用網(wǎng)絡(luò)中共享文件。不要將本文視為你公司網(wǎng)絡(luò)的操作指南,因?yàn)楸疚臎]有實(shí)現(xiàn)必要的網(wǎng)絡(luò)安全考慮。
從 Windows 訪問 Linux
本節(jié)介紹從 Windows 文件資源管理器訪問用戶的 Linux 主目錄。
1、安裝和配置 Samba
進(jìn)入你的系統(tǒng)安裝 Samba:
dnf install samba
Samba 是一個(gè)系統(tǒng)守護(hù)進(jìn)程,其配置文件位于 /etc/samba/smb.conf。它的默認(rèn)配置應(yīng)該就可以工作。如果不行,下面這個(gè)最小化配置應(yīng)該可以解決問題:
[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
你可以在該項(xiàng)目網(wǎng)站的 smb.conf 部分找到參數(shù)的詳細(xì)說明。
2、修改 LinuxSE
如果你的 Linux 發(fā)行版受 SELinux 保護(hù)(比如 Fedora),必須通過以下命令才能通過 Samba 共享主目錄:
setsebool -P samba_enable_home_dirs on
通過以下命令查看這個(gè)值:
getsebool samba_enable_home_dirs
輸出如下:
Sebool
3、啟用你的用戶
Samba 使用一組用戶/密碼來管理連接權(quán)限。通過鍵入以下命令將你的 Linux 用戶添加到該集合中:
smbpasswd -a <你的用戶名>
系統(tǒng)提示你輸入密碼。這是一個(gè) 全新 的密碼;而不是你賬戶的當(dāng)前密碼。請(qǐng)輸入你想用來登錄 Samba 的密碼。
鍵入以下命令得到有 Samba 使用權(quán)限的用戶列表:
pdbedit -L -v
鍵入以下命令刪除一個(gè)用戶:
smbpasswd -x <用戶名>
4、開啟 Samba
既然 Samba 是一個(gè)系統(tǒng)守護(hù)進(jìn)程,你可以在 Fedora 上鍵入以下命令啟動(dòng)它:
systemctl start smb
這將為當(dāng)前會(huì)話開啟 Samba 服務(wù)。如果想讓它自啟動(dòng),鍵入以下命令:
systemctl enable smb
在某些系統(tǒng)上,Samba 守護(hù)進(jìn)程注冊(cè)為 smbd。
5、配置防火墻
你的防火墻會(huì)默認(rèn)阻攔 Samba。通過配置防火墻允許 Samba 能永久訪問網(wǎng)絡(luò)。
你可以在命令行執(zhí)行如下操作:
firewall-cmd --add-service=samba --permanent
或者,你可以使用 firewall-config 工具以圖形化方式進(jìn)行操作:
firewall-config
6、從 Windows 訪問 Samba
在 Windows 中,打開文件資源管理器。在地址欄中,鍵入兩個(gè)反斜杠(\\),緊跟你的 Linux 機(jī)器的地址(IP 地址或主機(jī)名):
從 Windows 訪問 Linux
系統(tǒng)將提示你輸入登錄信息。輸入第 3 步中的用戶名和密碼組合。你現(xiàn)在應(yīng)該可以訪問 Linux 機(jī)器上的主目錄:
從 Windows 訪問 Linux
從 Linux 訪問 Windows
以下步驟說明了如何從 Linux 訪問共享的 Windows 文件夾。要實(shí)現(xiàn)這一點(diǎn),需要你的 Windows 用戶帳戶具有管理員權(quán)限。
1、啟用文件共享
通過點(diǎn)擊 “Windows 按鈕” > “設(shè)置Settings” > “網(wǎng)絡(luò)和 InternetNetwork & Internet” ,或者右鍵單擊任務(wù)欄右下角的小監(jiān)視器圖標(biāo),打開網(wǎng)絡(luò)和共享中心Open Network an d Sharing Center:
打開網(wǎng)絡(luò)和共享中心
在打開的窗口中,找到你要使用的連接并記下其配置文件。我使用了 以太網(wǎng) 3,它被標(biāo)記為 公用網(wǎng)絡(luò)Public Network。
注意:如果你的 PC 經(jīng)常連接公用網(wǎng)絡(luò),請(qǐng)考慮將本地計(jì)算機(jī)的連接配置文件更改為 私有。
記住你的網(wǎng)絡(luò)配置,然后單擊 更改高級(jí)共享設(shè)置Change advanced sharing settings:
更改高級(jí)共享設(shè)置
選擇與你的連接對(duì)應(yīng)的配置文件并打開 網(wǎng)絡(luò)發(fā)現(xiàn)network discovery 和 文件和打印機(jī)共享file and printer sharing:
網(wǎng)絡(luò)共享設(shè)置
2、定義一個(gè)共享文件夾
通過右鍵單擊你要共享的文件夾打開上下文菜單,導(dǎo)航到 授予訪問權(quán)限Give access to,然后選擇 特定用戶...Specific people...:
授予訪問權(quán)限
檢查你當(dāng)前的用戶名是否在列表中。點(diǎn)擊 共享Share 將此文件夾標(biāo)記為共享:
標(biāo)記為共享
你可以通過在文件資源管理器的地址欄中輸入 \\localhost 來顯示所有共享文件夾的列表:
共享文件夾
共享文件夾
3、在 Linux 下掛載共享文件夾
回到你的 Linux 系統(tǒng),打開一個(gè)命令行,然后創(chuàng)建一個(gè)新文件夾,用于掛載 Windows 共享:
mkdir ~/WindowsShare
掛載 Windows 共享是使用 mount.cifs 完成的,它應(yīng)該被默認(rèn)安裝。使用如下命令臨時(shí)掛載你的共享文件夾:
sudo mount.cifs //<address-of-windows-pc>/MySharedFolder ~/WindowsShare/ -o user=<Windows-user>,uid=$UID
在這個(gè)命令里:
- <address-of-windows-pc>是 Windows PC 的地址信息(IP 或主機(jī)名)
- <Windows-user>是允許訪問共享文件夾的用戶(見步驟 2)
系統(tǒng)將提示你輸入 Windows 密碼。之后,你將能夠使用普通 Linux 用戶訪問 Windows 上的共享文件夾。
要卸載共享文件夾:
sudo umount ~/WindowsShare/
你還可以在系統(tǒng)啟動(dòng)時(shí)掛載 Windows 共享文件夾。按照 這些步驟 相應(yīng)地配置你的系統(tǒng)。
總結(jié)
在這里展示了如何建立臨時(shí)的文件夾共享訪問權(quán)限,每次重啟后都要重新設(shè)置,因此修改成永久訪問會(huì)更便利。我經(jīng)常在不同的系統(tǒng)之間來回切換,對(duì)我而言設(shè)置直接文件訪問非常實(shí)用。