
?一,相關知識了解(本文執行環境為fedora22和win10)
在局域網內windows系統之間共享文件可以通過windows的網上鄰居共享,它是基于微軟的cifs服務,而linux之間文件共享可以通過nfs文件系統來實現。當然,還要提一下ftp文件傳輸協議,ftp用于Internet上的控制文件的雙向傳輸,但是它可以傳輸文件,卻不能讓用戶在客戶端實時的修改文件。對于不同平臺,linux和windows之間的文件共享,就需要一個工具,叫做samba
二,fedora訪問win10共享文件夾
1,在windows上創建一個用戶 abc 用于fedora通過該用戶訪問共享文件夾,找到要共享的文件夾,設置權限,共享給 abc
2,在linux上安裝samba-clientcifs-utils(如果你之前安裝過了,就不需要在安裝了,可以使用rpm -qa | grep samba-client 查詢或者 dnf info samba-client 或者 dnf list samba-client)
執行該命令安裝:dnf install samba-client? cifs-utils
3,查看 abc 的共享權限情況以免出錯
執行命令:smbclient -L //ip地址 -U 用戶名(這里是abc)
4,掛載windows上要共享的文件夾到linux
執行:mount -t cifs -o username=用戶名,password=共享密碼(創建abc時設置的密碼)? //windows ip地址/共享目錄。到此掛載完成后就可以在linux上訪問共享文件夾了。
5,在做以上步驟時可能會出現錯誤,比如在做步驟3時可能出現錯誤提示:tree connect failed:NT_STATUS_DUPLICATAE_NAME
a->原因:當您嘗試使用在 DNS 區域中創建的 CNAME 別名連接到服務器時,可能會發生此問題。例如,在執行與以下示例命令類似的命令時,可能會發生此問題。
net view \\別名.域名.com
其中,別名 是為域名.com 區域中的服務器創建的 CNAME 記錄。服務器不“偵聽”別名,因此無法接受到該名稱的連接。
b->解決辦法:在windows執行以下步驟
)如果相應 DNS 服務器上的文件服務器沒有 CNAME 記錄,則創建該 CNAME 記錄。
)將該修復程序應用于為其創建 CNAME 記錄的計算機,而不是 DNS 服務器。(除非有問題的 DNS 服務器和文件服務器是同一臺計算機,這樣的話所有更改都將應用于該服務器。)此修復程序會影響 LAN Manager 服務器服務,但不會影響 DNS 功能。
)對安裝該修復程序的文件服務器應用以下注冊表更改。為此,請按照下列步驟操作:
)啟動注冊表編輯器 (Regedt32.exe)。
)在注冊表中找到并單擊以下項:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters
)在編輯菜單上,單擊添加數值,然后添加以下注冊表值:
數值名稱:DisableStrictNameChecking
數據類型:REG_DWORD
基數:十進制
數值: 1
)退出注冊表編輯器。
)重新啟動計算機。
三,在windows上訪問linux共享文件夾
1,在linux上安裝samba
執行:dnf install samba
2,在 linux編輯samba配置文件
執行:vi /etc/samba/smb.conf(先備份以免出錯恢復)
在Network-Related Options欄里hosts allow=xxxxxxxxx一行上填上linux的ip地址
在Standalone Server Options欄里security=xxxxxx一行填上user(表示安全等級為user,當然可以填安全等級share,不用密碼驗證,但是share 在fedora22上貌似不能使用)
在最后一行補充
[root] #windows通過root訪問共享文件夾
comment = root #解釋用的,可以填其他的
path=/home/目錄? #可以自己設置共享目錄
browseable=yes? ? #瀏覽權限
guest ok? =yes #來賓賬戶權限
writable =yes? #開放寫權限
cerate mask = 0777 #新建文件開放全部權限
保存退出:wq
3,創建訪問共享目錄的用戶及設置用戶使用samba訪問共享目錄用戶訪問密碼和為訪問共享目錄的用戶賦予可讀寫權限。
useradd -g root? 用戶名
smbpasswd -a 用戶名
chmod 775 /home/目錄
4,重啟samba
service smb stop
service smb start
或者service smb restart
5,從windows訪問共享文件夾
在運行里輸入 \\linux ip 地址
輸入用戶名及samba服務訪問密碼
6,如果出錯,注意關閉fedora的selinux和防火墻服務
sudo systemctl stop firewalld.service? ? ? ? # 暫時關閉,重啟后恢復
sudo systemctl start firewalld.service? ? ? ? # 啟用防火墻
sudo systemctl disable firewalld.service? ? ? ? # 禁用防火墻
sudo systemctl enable firewalld.service? ? ? ? # 啟用防火墻
快速關閉SElinux,使用如下命令就可以:
/usr/sbin/setenforce 0 立刻關閉 SELINUX
/usr/sbin/setenforce 1 立刻啟用 SELINUX
加到系統默認啟動里面
echo "/usr/sbin/setenforce 0" >> /etc/rc.local
vi /etc/selinux/conf
set SELINUX=disabled /enforcing? 關閉/開啟
7,到此,linux和windows之間的文件共享互訪結束