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