linux 内网共享文件夹_在Linux下访问Windows共享文件夹
說明
以下操作以Ubuntu為例,大家可以參考。
我在Ubuntu 14.04和16.04都試過了。
Windows共享文件夾
如果局域網(wǎng)內(nèi)有一臺Windows主機,將指定文件夾設(shè)為共享,就可以在局域網(wǎng)內(nèi)訪問了。
如果要從Linux下訪問該如何操作呢?
使用 mount.cifs
Windows共享文件夾使用的協(xié)議是SMB/CIFS。因而可以使用Linux下的smbclient在命令行中進行操作。
如果想更方便地在圖形桌面環(huán)境使用,則可以使用mount.cifs指令,將共享文件夾掛載到指定位置,然后就可以像訪問一個本地文件夾一樣訪問了。
首先安裝依賴的包
使用mount.cifs需要cifs-utils軟件包(以及cifs-utils依賴的軟件包)。
$ sudo apt install cifs-utils
(插一句嘴:現(xiàn)在apt安裝可以直接使用apt而不用apt-get了)
掛載共享文件夾
可以使用如下兩種指令(效果是一樣的)
sudo mount.cifs //[address]/[folder] [mount point] -o user=[username],passwd=[pw]
或者
sudo mount -t cifs //[address]/[folder] [mount point] -o user=[username],passwd=[pw]
其中共享文件夾的地址是Windows主機的地址加上文件夾名稱,這個可以在Windows主機上看到。例如//192.168.0.100/share
掛載點是Linux本地的一個空文件夾。
后面的選項指定了用戶名和密碼。
文件操作
掛載成功后,通過圖形化的文件管理器就可以直接操作了。復(fù)制、粘貼、刪除等等。
不過,然而,可是……你很快就會發(fā)現(xiàn),這個文件夾可讀不可寫!只能往外面復(fù)制,不能新建文件或者向里面復(fù)制。
查看文件夾屬性后會發(fā)現(xiàn),原來這個文件夾在掛載之后,owner變成了root。怎么辦呢?不能每次拷個文件還要sudo吧?那還得打開命令行,不直觀,多麻煩。
別急,mount.cifs還提供了一個選項,那就是指定掛載后的owner!用法如下:
sudo mount.cifs //[address]/[folder] [mount point] -o user=[username],passwd=[pw],uid=[UID]
在選項中指定用戶的UID就可以了。
查看某個用戶UID的方法:
id -u [username]
之后就可以正常操作了!
卸載
最后如果要卸載共享文件夾,使用umount即可
sudo umount [mount point]
Enjoy!
可能遇到的問題
使用過程中可能遇到各種各樣的問題,其結(jié)果往往是一樣的:無法訪問目標(biāo)文件夾。這里列出幾個可能遇到的問題以及可能的原因和解決辦法。
1、目標(biāo)主機在某個域中
一般個人電腦不會使用域管理(Windows PC版壓根兒就沒有域管理服務(wù)),但是在一個企業(yè)或者組織中,可能會用Windows server的域管理功能,統(tǒng)一管理內(nèi)部的Windows電腦。登錄在域中的計算機時,登錄界面會顯示域名。
用上面的指令就沒有辦法登錄處于域中的計算機共享文件夾,可能的報錯是input/output error。
解決方法:
使用domain選項來指定域名:
sudo mount.cifs //[address]/[folder] [mount point] -o domain=[domain_name],user=[username],passwd=[pw],uid=[UID]
2、希望免密碼登錄
有些時候,為了方便起見希望不使用密碼登錄。
解決方法
使用guest選項。
sudo mount.cifs //[address]/[folder] [mount point] -o user=[username],guest,uid=[UID]
不過需要注意的是,如果要免密碼登錄,不僅客戶端的登錄指令要變,更重要的是在目標(biāo)主機上要進行相關(guān)設(shè)置,允許Guest賬戶登錄,或者允許免密碼登錄。具體設(shè)置方式,這里就不涉及了,與Windows系統(tǒng)版本有關(guān),不過大同小異。
3、賬戶密碼正確,但連接失敗
錯誤信息是mount error(13): Permission denied。遇到這種錯誤請首先確定用戶名和密碼是否正確。
其他導(dǎo)致這種情況的原因有(1)安全協(xié)議不匹配(2)在Linux系統(tǒng)中,你沒有掛載權(quán)限;(3)Windows目標(biāo)主機訪問時權(quán)限不足
解決方法
情況1:可使用sec=選項指定安全協(xié)議。如果Linux內(nèi)核版本低于3.8,則默認(rèn)的安全協(xié)議是sec=ntlm,而3.8及以后的版本使用sec=ntlmssp作為默認(rèn)安全協(xié)議。對于版本較低的Windows(如Windows XP),可能不支持新的ntlmssp,此時需要指明使用ntlm協(xié)議。可使用man mount.cifs查看詳細(xì)說明。
情況2:請使用有掛載權(quán)限的賬戶操作,比如root。
情況3:請進入Windows共享文件設(shè)置相關(guān)界面進行設(shè)置。因為可能原因是(1)你使用的賬戶不能訪問這個文件夾;(2)Windows針對當(dāng)前的網(wǎng)絡(luò)連接關(guān)閉了文件共享;(3)其他配置原因。
4、斷網(wǎng)的情況下假死
如果在已經(jīng)連接成功的情況下斷網(wǎng),此時對已經(jīng)掛載的共享文件夾進行任何操作(包括讀取和卸載),都會導(dǎo)致假死(可能要卡住1-2分鐘才能恢復(fù))。這是網(wǎng)絡(luò)文件系統(tǒng)(NFS)的特性決定的,修改掛載指令是沒辦法優(yōu)化這個問題的。
解決方法
如果是命令行操作,那么就只好等待了。如果是在應(yīng)用程序中使用,則建議使用多線程操作,單開一個臨時線程卸載掛載的文件夾,臨時線程的假死不會影響主線程。
總結(jié)
以上是生活随笔為你收集整理的linux 内网共享文件夹_在Linux下访问Windows共享文件夹的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: abaqus切削为什么没有切屑_基于AB
- 下一篇: python 一张图画多条线_Gnupl