共享配置詳解)
1. 項(xiàng)目概述為什么要在Ubuntu和Windows之間共享文件夾如果你和我一樣日常需要在Ubuntu和Windows雙系統(tǒng)之間切換或者有一臺(tái)Windows主機(jī)和一臺(tái)Ubuntu虛擬機(jī)那么文件互傳絕對(duì)是個(gè)高頻剛需。每次都要用U盤(pán)拷來(lái)拷去或者依賴網(wǎng)盤(pán)、郵件附件不僅效率低下而且對(duì)于大文件、頻繁修改的代碼或文檔來(lái)說(shuō)簡(jiǎn)直是種折磨。直接在兩個(gè)系統(tǒng)之間建立一個(gè)共享文件夾讓它們能像訪問(wèn)本地磁盤(pán)一樣訪問(wèn)對(duì)方的文件這才是最優(yōu)雅、最高效的解決方案。這個(gè)需求背后其實(shí)是跨平臺(tái)協(xié)作的典型場(chǎng)景。開(kāi)發(fā)者可能在Windows上使用某些專業(yè)軟件如Adobe套件、特定工業(yè)軟件但開(kāi)發(fā)、編譯、部署環(huán)境又在Ubuntu/Linux下數(shù)據(jù)分析師可能在Windows上收集整理數(shù)據(jù)但需要到Ubuntu服務(wù)器上運(yùn)行計(jì)算密集型任務(wù)普通用戶也可能在Windows下娛樂(lè)在Ubuntu下辦公學(xué)習(xí)。無(wú)論哪種情況一個(gè)無(wú)縫的文件共享通道都能極大提升工作流的連貫性。實(shí)現(xiàn)Ubuntu與Windows共享文件夾主流且穩(wěn)定的方法有兩種它們適用于不同的物理架構(gòu)。第一種是Samba協(xié)議共享這適用于兩臺(tái)獨(dú)立的物理機(jī)或虛擬機(jī)以橋接模式連接在同一局域網(wǎng)通過(guò)標(biāo)準(zhǔn)的網(wǎng)絡(luò)文件共享協(xié)議互通。第二種是虛擬機(jī)專用共享比如在VMware或VirtualBox中為Ubuntu虛擬機(jī)設(shè)置“共享文件夾”這依賴于虛擬機(jī)軟件提供的驅(qū)動(dòng)和目錄映射功能。本文將深入拆解這兩種方法的原理、詳細(xì)配置步驟、避坑技巧以及性能調(diào)優(yōu)讓你根據(jù)自身情況選擇最合適的方案并一次配置成功。2. 方案選型Samba共享 vs. 虛擬機(jī)共享我該怎么選在動(dòng)手之前搞清楚兩種方案的本質(zhì)區(qū)別和適用場(chǎng)景至關(guān)重要這能幫你避免走彎路。2.1 Samba共享跨網(wǎng)絡(luò)的通用協(xié)議Samba是一套開(kāi)源軟件它實(shí)現(xiàn)了SMB/CIFS網(wǎng)絡(luò)協(xié)議。這個(gè)協(xié)議正是Windows“網(wǎng)上鄰居”或“網(wǎng)絡(luò)發(fā)現(xiàn)”功能的核心。簡(jiǎn)單來(lái)說(shuō)Samba讓Ubuntu可以“偽裝”成一臺(tái)Windows文件服務(wù)器或者去訪問(wèn)Windows共享出來(lái)的文件夾。核心原理Samba作為一個(gè)服務(wù)daemon運(yùn)行在Ubuntu上。當(dāng)Windows嘗試訪問(wèn)Ubuntu時(shí)Samba服務(wù)會(huì)響應(yīng)請(qǐng)求處理身份驗(yàn)證并允許授權(quán)用戶訪問(wèn)指定的本地目錄。反之Ubuntu也可以通過(guò)內(nèi)置的cifs-utils工具包像掛載本地磁盤(pán)一樣將Windows共享的文件夾掛載到自己的文件系統(tǒng)中。適用場(chǎng)景雙物理機(jī)一臺(tái)裝Windows一臺(tái)裝Ubuntu兩者通過(guò)路由器或交換機(jī)連接在同一局域網(wǎng)。虛擬機(jī)橋接模式Ubuntu虛擬機(jī)網(wǎng)絡(luò)設(shè)置為“橋接模式”這樣虛擬機(jī)會(huì)獲得一個(gè)與物理主機(jī)同網(wǎng)段的獨(dú)立IP就像局域網(wǎng)里另一臺(tái)真實(shí)電腦一樣。對(duì)傳輸性能有一定要求千兆局域網(wǎng)內(nèi)Samba的傳輸速度可以跑滿網(wǎng)絡(luò)帶寬適合傳輸大文件。需要靈活的權(quán)限控制可以針對(duì)不同用戶設(shè)置讀寫(xiě)、只讀等精細(xì)權(quán)限。優(yōu)點(diǎn)通用性強(qiáng)配置一次后網(wǎng)絡(luò)內(nèi)其他設(shè)備包括macOS、Android也能訪問(wèn)性能較好權(quán)限管理細(xì)致。缺點(diǎn)配置相對(duì)復(fù)雜涉及服務(wù)安裝、配置、防火墻、用戶權(quán)限等多方面需要知道IP地址。2.2 虛擬機(jī)專用共享以VirtualBox/VMware為例這是虛擬機(jī)軟件提供的一項(xiàng)便利功能。它通過(guò)在主機(jī)操作系統(tǒng)Host和客戶機(jī)操作系統(tǒng)Guest之間安裝額外的“增強(qiáng)功能”驅(qū)動(dòng)創(chuàng)建一個(gè)特殊通道直接將主機(jī)上的某個(gè)目錄“暴露”給虛擬機(jī)。核心原理以VirtualBox為例安裝“增強(qiáng)功能”后會(huì)在Ubuntu虛擬機(jī)內(nèi)加載一個(gè)內(nèi)核模塊如vboxsf。當(dāng)你在VirtualBox設(shè)置中指定一個(gè)主機(jī)文件夾例如D:\Share并分配一個(gè)標(biāo)簽如shared_folder后這個(gè)內(nèi)核模塊會(huì)負(fù)責(zé)在Ubuntu內(nèi)通常是/media目錄下動(dòng)態(tài)創(chuàng)建一個(gè)對(duì)應(yīng)的掛載點(diǎn)將兩個(gè)不同系統(tǒng)的目錄關(guān)聯(lián)起來(lái)。適用場(chǎng)景單機(jī)虛擬機(jī)環(huán)境在Windows系統(tǒng)上使用VirtualBox或VMware運(yùn)行Ubuntu虛擬機(jī)。追求極簡(jiǎn)配置希望用最簡(jiǎn)單、最快速的方式共享文件不想折騰網(wǎng)絡(luò)和協(xié)議。開(kāi)發(fā)調(diào)試在Windows下用IDE寫(xiě)代碼需要即時(shí)在Ubuntu虛擬機(jī)內(nèi)編譯運(yùn)行。優(yōu)點(diǎn)配置極其簡(jiǎn)單通常只需在虛擬機(jī)設(shè)置里勾選、指定路徑即可無(wú)需關(guān)心IP和網(wǎng)絡(luò)配置集成度高。缺點(diǎn)僅限該虛擬機(jī)與主機(jī)之間使用無(wú)法被網(wǎng)絡(luò)內(nèi)其他設(shè)備訪問(wèn)某些情況下文件權(quán)限處理可能有點(diǎn)別扭默認(rèn)掛載為vboxsf組用戶需要在該組內(nèi)才能有寫(xiě)權(quán)限性能可能略低于Samba但對(duì)于絕大多數(shù)文件操作足夠。我的選擇建議如果你是虛擬機(jī)用戶首選虛擬機(jī)專用共享簡(jiǎn)單省心。如果你是雙物理機(jī)用戶或者虛擬機(jī)需要被局域網(wǎng)內(nèi)其他設(shè)備訪問(wèn)那么Samba共享是唯一選擇。下文將分別詳細(xì)展開(kāi)。3. 方案一詳解配置Samba實(shí)現(xiàn)雙向高速共享這里我們以實(shí)現(xiàn)最常見(jiàn)的場(chǎng)景為例在Ubuntu上創(chuàng)建共享文件夾讓W(xué)indows來(lái)訪問(wèn)。反向操作Ubuntu訪問(wèn)Windows共享會(huì)更簡(jiǎn)單一些將在后面介紹。3.1 環(huán)境準(zhǔn)備與Samba安裝首先確保你的Ubuntu和Windows處于同一局域網(wǎng)連接同一個(gè)Wi-Fi或路由器。在Ubuntu終端中執(zhí)行以下命令更新軟件包列表并安裝Samba及其客戶端工具。sudo apt update sudo apt install samba samba-common-bin cifs-utils -ysamba: Samba服務(wù)器主程序。samba-common-bin: 包含Samba的通用工具如用于管理用戶密碼的smbpasswd。cifs-utils: 用于掛載CIFS/SMB文件系統(tǒng)的工具用于Ubuntu訪問(wèn)Windows共享時(shí)。安裝完成后Samba服務(wù)會(huì)自動(dòng)啟動(dòng)。你可以使用systemctl命令檢查其狀態(tài)sudo systemctl status smbd看到active (running)字樣即表示服務(wù)運(yùn)行正常。3.2 創(chuàng)建共享目錄與配置Samba假設(shè)我們想在Ubuntu的/home/你的用戶名目錄下創(chuàng)建一個(gè)名為share_for_windows的共享文件夾。創(chuàng)建目錄并設(shè)置權(quán)限mkdir ~/share_for_windows sudo chmod 777 ~/share_for_windows # 為簡(jiǎn)化演示先賦予所有人讀寫(xiě)執(zhí)行權(quán)限。生產(chǎn)環(huán)境建議使用更精細(xì)的權(quán)限控制。這里使用chmod 777是為了避免在初步配置時(shí)因權(quán)限問(wèn)題導(dǎo)致訪問(wèn)失敗。在實(shí)際使用中更安全的做法是通過(guò)Samba配置和正確的系統(tǒng)用戶組來(lái)管理權(quán)限。備份并編輯Samba主配置文件 Samba的配置文件位于/etc/samba/smb.conf。修改前先備份是個(gè)好習(xí)慣。sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup sudo nano /etc/samba/smb.conf我習(xí)慣用nano編輯器你也可以用vim。在配置文件末尾添加共享定義 滾動(dòng)到文件末尾添加如下配置塊。請(qǐng)務(wù)必將your_username替換為你實(shí)際的Ubuntu用戶名。[UbuntuShare] # 共享名稱將在Windows網(wǎng)絡(luò)中顯示為此名 path /home/your_username/share_for_windows # 共享目錄的絕對(duì)路徑 browseable yes # 是否在網(wǎng)絡(luò)上可見(jiàn) writable yes # 是否可寫(xiě) read only no # 是否只讀與writable相反設(shè)置一個(gè)即可 guest ok no # 是否允許匿名訪問(wèn)建議設(shè)為no啟用用戶認(rèn)證 valid users your_username # 允許訪問(wèn)此共享的用戶 create mask 0775 # 新建文件的默認(rèn)權(quán)限 directory mask 0775 # 新建目錄的默認(rèn)權(quán)限關(guān)鍵參數(shù)解析[UbuntuShare]: 方括號(hào)內(nèi)的名字就是你在網(wǎng)絡(luò)里看到的共享名可以自定義。valid users: 指定有權(quán)限訪問(wèn)的用戶。這里只允許你自己。create maskdirectory mask: 控制通過(guò)Samba創(chuàng)建的文件和目錄的權(quán)限。0775表示所有者、同組用戶可讀寫(xiě)執(zhí)行其他用戶只讀執(zhí)行。這比0777更安全。3.3 添加Samba用戶并重啟服務(wù)Samba使用獨(dú)立的密碼體系需要將你的系統(tǒng)用戶添加到Samba數(shù)據(jù)庫(kù)并設(shè)置密碼。這個(gè)密碼不需要和你的系統(tǒng)登錄密碼相同。sudo smbpasswd -a your_username系統(tǒng)會(huì)提示你輸入并確認(rèn)新的Samba密碼。請(qǐng)牢記這個(gè)密碼在Windows連接時(shí)需要輸入。接下來(lái)重啟Samba服務(wù)以使配置生效sudo systemctl restart smbd為了確保開(kāi)機(jī)自啟可以運(yùn)行sudo systemctl enable smbd3.4 配置防火墻如果啟用如果Ubuntu系統(tǒng)啟用了防火墻ufw需要放行Samba服務(wù)。sudo ufw allow samba或者更精確地放行Samba使用的端口通常為139和445sudo ufw allow 139/tcp sudo ufw allow 445/tcp3.5 從Windows訪問(wèn)Ubuntu共享現(xiàn)在切換到你的Windows電腦。打開(kāi)文件資源管理器在地址欄輸入U(xiǎn)buntu機(jī)器的IP地址格式為\\Ubuntu的IP地址。例如\\192.168.1.100。如何獲取Ubuntu的IP在Ubuntu終端輸入ip addr show或hostname -I。按回車后會(huì)彈出登錄窗口。用戶名填寫(xiě)你在smb.conf中設(shè)置的valid users即你的Ubuntu用戶名密碼填寫(xiě)剛才用smbpasswd設(shè)置的Samba密碼。勾選“記住我的憑據(jù)”可以避免下次重復(fù)輸入。登錄成功后你就能看到名為UbuntuShare的共享文件夾了可以像操作本地文件夾一樣進(jìn)行復(fù)制、粘貼、刪除等操作。實(shí)操心得與避坑指南連接失敗首先在Ubuntu上ping一下Windows的IP確保網(wǎng)絡(luò)連通。再檢查Samba服務(wù)狀態(tài)sudo systemctl status smbd查看配置文件是否有語(yǔ)法錯(cuò)誤testparm。權(quán)限拒絕最常見(jiàn)的原因。確保1) 共享目錄的本地文件系統(tǒng)權(quán)限用ls -ld查看允許相應(yīng)用戶訪問(wèn)2) Samba配置中的valid users正確3) 用smbpasswd設(shè)置的密碼無(wú)誤。想用更方便的主機(jī)名訪問(wèn)可以在Windows的C:\Windows\System32\drivers\etc\hosts文件中添加一行將Ubuntu的IP映射到一個(gè)簡(jiǎn)單的主機(jī)名如ubuntu-pc之后就可以用\\ubuntu-pc訪問(wèn)了。但局域網(wǎng)內(nèi)的主機(jī)名廣播NetBIOS有時(shí)不穩(wěn)定IP地址是最可靠的。3.6 反向操作從Ubuntu訪問(wèn)Windows共享這個(gè)操作更簡(jiǎn)單無(wú)需在Windows上進(jìn)行復(fù)雜配置只需確保Windows文件夾已共享。在Windows上設(shè)置共享右鍵點(diǎn)擊想要共享的文件夾 - “屬性” - “共享”選項(xiàng)卡 - “高級(jí)共享” - 勾選“共享此文件夾” - 設(shè)置共享名如WinShare- 點(diǎn)擊“權(quán)限”可以設(shè)置用戶訪問(wèn)權(quán)限默認(rèn)Everyone為只讀可改為完全控制。在Ubuntu上創(chuàng)建掛載點(diǎn)并掛載# 創(chuàng)建一個(gè)本地目錄作為掛載點(diǎn) sudo mkdir /mnt/windows_share # 使用mount命令掛載。需要cifs-utils包的支持 sudo mount -t cifs //WINDOWS_IP/WinShare /mnt/windows_share -o username你的Windows用戶名,password你的Windows密碼,uid$(id -u),gid$(id -g),vers3.0參數(shù)詳解-t cifs: 指定文件系統(tǒng)類型為CIFS/SMB。//WINDOWS_IP/WinShare: Windows共享的路徑。WinShare是共享名。/mnt/windows_share: 本地掛載點(diǎn)。username/password: Windows系統(tǒng)的登錄憑據(jù)。如果Windows用戶名有空格需要用單引號(hào)括起來(lái)。uid$(id -u),gid$(id -g): 將掛載的文件所有權(quán)映射到當(dāng)前Ubuntu用戶這樣你才能直接讀寫(xiě)文件否則文件可能屬于root。vers3.0: 指定SMB協(xié)議版本。Windows 10/11默認(rèn)可能使用SMB 3.x明確指定vers3.0兼容性更好。如果失敗可以嘗試vers2.0或vers1.0。實(shí)現(xiàn)開(kāi)機(jī)自動(dòng)掛載可選 編輯/etc/fstab文件在末尾添加一行//WINDOWS_IP/WinShare /mnt/windows_share cifs username你的用戶名,password你的密碼,uid$(id -u),gid$(id -g),vers3.0,noauto,x-systemd.automount 0 0noauto,x-systemd.automount: 表示啟動(dòng)時(shí)不立即掛載僅在訪問(wèn)時(shí)自動(dòng)掛載避免因網(wǎng)絡(luò)未就緒導(dǎo)致啟動(dòng)失敗。安全警告將明文密碼寫(xiě)在fstab中存在安全風(fēng)險(xiǎn)。可以考慮使用憑據(jù)文件將用戶名密碼保存在一個(gè)僅root可讀的文件中然后在fstab中引用credentials/path/to/secret。4. 方案二詳解配置VirtualBox虛擬機(jī)共享文件夾極簡(jiǎn)如果你使用的是VirtualBox虛擬機(jī)那么共享文件夾的配置可以說(shuō)是“一鍵式”的。這里以VirtualBox 7.x Ubuntu 22.04 LTS為例。4.1 安裝VirtualBox增強(qiáng)功能Guest Additions這是實(shí)現(xiàn)共享文件夾、無(wú)縫鼠標(biāo)集成、共享剪貼板、更好顯示性能的基礎(chǔ)。務(wù)必在Ubuntu虛擬機(jī)系統(tǒng)啟動(dòng)后操作。在VirtualBox管理器界面選中你的Ubuntu虛擬機(jī)點(diǎn)擊“設(shè)置” - “存儲(chǔ)”。在“光驅(qū)”那里點(diǎn)擊光盤(pán)圖標(biāo)選擇“選擇虛擬盤(pán)” -VBoxGuestAdditions.iso。這個(gè)鏡像文件通常位于你的VirtualBox安裝目錄下。啟動(dòng)Ubuntu虛擬機(jī)。系統(tǒng)可能會(huì)自動(dòng)掛載這個(gè)增強(qiáng)功能鏡像。如果沒(méi)有你需要手動(dòng)掛載。打開(kāi)Ubuntu終端執(zhí)行以下命令# 首先安裝編譯增強(qiáng)功能所需的內(nèi)核頭文件和構(gòu)建工具 sudo apt update sudo apt install build-essential dkms linux-headers-$(uname -r) -y # 掛載增強(qiáng)功能鏡像如果未自動(dòng)掛載 # 通常會(huì)自動(dòng)掛載到 /media/ 下可以先檢查 ls /media/ # 如果看到類似 cdrom 或 VBox_GAs_xxx 的目錄進(jìn)入它 cd /media/你的用戶名/VBox_GAs_xxx # 運(yùn)行安裝腳本 sudo ./VBoxLinuxAdditions.run安裝過(guò)程會(huì)編譯一些內(nèi)核模塊。看到“Building the VirtualBox Guest Additions kernel modules...”和“Successfully installed”等提示即表示成功。重啟虛擬機(jī)sudo reboot。重啟后增強(qiáng)功能才完全生效。4.2 配置并啟用共享文件夾在虛擬機(jī)關(guān)機(jī)的狀態(tài)下進(jìn)入虛擬機(jī)“設(shè)置” - “共享文件夾”。點(diǎn)擊右側(cè)的“添加共享文件夾”按鈕帶加號(hào)的文件夾圖標(biāo)。文件夾路徑點(diǎn)擊下拉箭頭選擇“其他”然后瀏覽并選擇你Windows主機(jī)上希望共享的目錄例如D:\VM_Share。文件夾名稱給這個(gè)共享起一個(gè)名字例如host_share。這個(gè)名字將在Ubuntu內(nèi)部使用。勾選“自動(dòng)掛載”和“固定分配”。自動(dòng)掛載虛擬機(jī)啟動(dòng)時(shí)自動(dòng)掛載該共享文件夾。固定分配將此共享設(shè)置為永久性即使虛擬機(jī)快照還原也會(huì)保留。只讀分配按需勾選如果你不希望Ubuntu修改主機(jī)文件。點(diǎn)擊“確定”保存設(shè)置。啟動(dòng)Ubuntu虛擬機(jī)。4.3 在Ubuntu中訪問(wèn)共享文件夾啟動(dòng)進(jìn)入U(xiǎn)buntu后共享文件夾通常會(huì)被自動(dòng)掛載到/media/目錄下并且有一個(gè)以sf_為前綴的文件夾名例如/media/sf_host_share。但是普通用戶默認(rèn)可能無(wú)法訪問(wèn)這個(gè)目錄。因?yàn)樵撃夸泴儆趘boxsf用戶組。你需要將當(dāng)前用戶添加到vboxsf組中。# 將當(dāng)前用戶添加到 vboxsf 組 sudo usermod -aG vboxsf $USER非常重要執(zhí)行此命令后必須完全注銷當(dāng)前桌面會(huì)話然后重新登錄用戶組變更才會(huì)生效。僅僅新開(kāi)一個(gè)終端窗口是沒(méi)用的。重新登錄后你就可以正常訪問(wèn)/media/sf_host_share目錄了擁有讀寫(xiě)權(quán)限除非設(shè)置了只讀。你也可以在文件管理器的“其他位置”里找到它。VirtualBox共享文件夾的獨(dú)家心得權(quán)限問(wèn)題終結(jié)sudo usermod -aG vboxsf $USER徹底注銷重登是解決無(wú)法訪問(wèn)的萬(wàn)能鑰匙。符號(hào)鏈接的坑不要在共享文件夾內(nèi)創(chuàng)建指向Ubuntu本地文件系統(tǒng)的符號(hào)鏈接軟鏈接這通常無(wú)法正常工作。反之在Ubuntu系統(tǒng)內(nèi)創(chuàng)建指向共享文件夾的鏈接是可行的。性能考慮對(duì)于大量小文件的讀寫(xiě)操作虛擬機(jī)共享的性能可能略低于Samba。但對(duì)于日常開(kāi)發(fā)、文檔編輯完全無(wú)感。備用訪問(wèn)路徑除了/media/sf_*你也可以手動(dòng)掛載到任何位置sudo mount -t vboxsf host_share /mnt/my_mount_point。host_share是你在VirtualBox中設(shè)置的“文件夾名稱”。5. 高級(jí)調(diào)優(yōu)與故障排查實(shí)錄無(wú)論采用哪種方案在實(shí)際使用中都可能遇到一些“小毛病”。這里記錄了我踩過(guò)的坑和解決方案。5.1 Samba共享性能優(yōu)化如果你感覺(jué)通過(guò)Samba傳輸大文件速度不理想可以嘗試調(diào)整smb.conf中的參數(shù)。在[global]部分或你的共享定義中添加[global] # 使用更大的讀寫(xiě)緩沖區(qū)提升大文件傳輸性能 socket options TCP_NODELAY SO_RCVBUF524288 SO_SNDBUF524288 # 禁用 oplocks (機(jī)會(huì)鎖)在某些多客戶端同時(shí)訪問(wèn)的場(chǎng)景下可提高兼容性但可能降低緩存效率請(qǐng)根據(jù)情況測(cè)試 # oplocks no # 使用更高效的 SMB 協(xié)議版本 server max protocol SMB3 # 設(shè)置更大的日志滾動(dòng)大小避免日志頻繁切割影響性能調(diào)試時(shí)可關(guān)日志 # log level 0 # 0為關(guān)閉1為僅錯(cuò)誤3為詳細(xì)信息修改后記得重啟服務(wù)sudo systemctl restart smbd。5.2 連接不穩(wěn)定或時(shí)斷時(shí)續(xù)癥狀Windows映射的網(wǎng)絡(luò)驅(qū)動(dòng)器偶爾出現(xiàn)紅叉或需要重新輸入密碼。可能原因Windows的電源管理策略可能會(huì)禁用網(wǎng)卡以省電導(dǎo)致SMB會(huì)話斷開(kāi)。解決方案Windows端打開(kāi)“設(shè)備管理器”。找到“網(wǎng)絡(luò)適配器”展開(kāi)后右鍵點(diǎn)擊你的有線或無(wú)線網(wǎng)卡 - “屬性”。切換到“電源管理”選項(xiàng)卡。取消勾選“允許計(jì)算機(jī)關(guān)閉此設(shè)備以節(jié)約電源”。點(diǎn)擊“確定”并重啟電腦。5.3 VirtualBox共享文件夾文件權(quán)限混亂癥狀在Ubuntu中創(chuàng)建的文件到Windows下看權(quán)限是奇怪的或者在Windows下創(chuàng)建的文件到Ubuntu下默認(rèn)是只讀的。根源兩個(gè)系統(tǒng)對(duì)文件權(quán)限的解釋不同。VirtualBox的vboxsf文件系統(tǒng)試圖在權(quán)限映射上做折中但并非完美。最佳實(shí)踐在VirtualBox共享文件夾設(shè)置中明確設(shè)置“掛載點(diǎn)權(quán)限”如果版本支持。在Ubuntu端通過(guò)umask來(lái)控制新建文件的默認(rèn)權(quán)限。例如在掛載時(shí)指定umask000對(duì)應(yīng)777權(quán)限或dmask000目錄、fmask000文件但這會(huì)降低安全性。更常見(jiàn)的是接受這種差異或者將共享文件夾僅用于數(shù)據(jù)交換而非直接在其中進(jìn)行需要嚴(yán)格權(quán)限管理的開(kāi)發(fā)如Git倉(cāng)庫(kù)。5.4 無(wú)法在圖形界面以root身份訪問(wèn)Samba共享這是一個(gè)常見(jiàn)的安全設(shè)計(jì)。圖形化的文件管理器如Nautilus通常以非特權(quán)用戶身份運(yùn)行當(dāng)嘗試以root身份訪問(wèn)需要密碼的Samba共享時(shí)可能會(huì)失敗或無(wú)法彈出密碼框。正確做法永遠(yuǎn)不要用root用戶作為Samba的日常訪問(wèn)用戶。按照前文教程為你自己常用的普通用戶創(chuàng)建Samba賬戶。應(yīng)急方案如果必須在命令行下以root身份掛載使用mount -t cifs命令并指定用戶名和密碼如前文所述。5.5 Windows 10/11 無(wú)法發(fā)現(xiàn)Ubuntu Samba服務(wù)器新版本的Windows默認(rèn)關(guān)閉了SMBv1并可能對(duì)網(wǎng)絡(luò)發(fā)現(xiàn)做了更嚴(yán)格的限制。確保網(wǎng)絡(luò)類型為“專用網(wǎng)絡(luò)”在Windows的網(wǎng)絡(luò)設(shè)置中將你連接的網(wǎng)絡(luò)配置文件從“公用”改為“專用”。啟用網(wǎng)絡(luò)發(fā)現(xiàn)和文件共享在“控制面板\網(wǎng)絡(luò)和 Internet\網(wǎng)絡(luò)和共享中心\高級(jí)共享設(shè)置”中確保當(dāng)前網(wǎng)絡(luò)配置文件下“啟用網(wǎng)絡(luò)發(fā)現(xiàn)”和“啟用文件和打印機(jī)共享”是打開(kāi)的。使用IP地址直接訪問(wèn)這是最可靠的方法放棄使用“網(wǎng)絡(luò)”發(fā)現(xiàn)直接在資源管理器地址欄輸入\\Ubuntu_IP。經(jīng)過(guò)以上步驟你應(yīng)該能夠根據(jù)自身環(huán)境穩(wěn)健地建立起Ubuntu與Windows之間的文件共享橋梁。兩種方案各有側(cè)重Samba更通用、強(qiáng)大虛擬機(jī)共享更便捷、直接。理解其背后的原理再結(jié)合具體的操作步驟和避坑經(jīng)驗(yàn)就能讓跨平臺(tái)的文件協(xié)作變得行云流水。