一,相关知识了解(本文执行环境为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之间的文件共享互访结束