Linux怎样访问Windowswin7访问共享文件夹和文件夹

中国领先的IT技术网站
51CTO旗下网站
Windows与Linux文件系统互访的几种方法
首先,我们知道基于文件的几种服务:ftp,sftp,这两种服务都是文件传输服务,偏重于网络传输,并不是实时互访。通常,我们需要在远程和本地同时操作同一个目录,如:在Windows下使用各种强大的IDE编辑代码,在Linux下编译和运行该代码……
作者:童燕群来源:shentar.me| 15:50
首先,我们知道基于文件的几种服务:ftp,sftp,这两种服务都是文件传输服务,偏重于网络传输,并不是实时互访。通常,我们需要在远程和本地同时操作同一个目录,如:在Windows下使用各种强大的IDE编辑代码,在Linux下编译和运行该代码。如果在Windows下编写好代码再拷贝到Linux下编译,这样修改时很费事,直接在Linux下修改,还要同步回Windows,相当费事。当然有人会说,所有的工作都在Linux下搞定,VI、Linux命令行足够强大,没有需要使用Windows系统的理由,本文的重点不在讨论命令行熟练程度与工作效率的问题。
怎样像访问本地文件系统一样访问远程的文件呢?如果远程的系统与本地系统是不同类型的,又该如何做呢。
我们知道,在Windows系统之间,可以通过共享目录的方式,让远程系统直接访问。其实这里是Windows提供一种远程文件系统机制,NAS协议的一种&&CIFS协议。如果是Linux系统呢,同样有另外一种NAS协议&&NFS协议来实现远程访问。那么这两种NAS协议能否互通呢?答案是否定的。虽然二者不能互通,但是,在Linux系统上面已经有了CIFS协议的服务端和客户端的实现,这样,无论是Linux给Windows共享还是Windows给Linux共享都可以借助这些已有的实现来做到了。
相反的,Windows上面有没有NFS的客户端或者服务端呢?也有,但是不常用,这里就不详细介绍了。
这里主要围绕着Linux上面使用CIFS协议来阐述如何实现两个系统之间的跨文件系统,跨操作系统共享。按照上面的描述,有两种方式来实现共享。Linux分别作为CIFS的服务端和客户端。下面分别就这两种方式来说明操作步骤和简单的原理介绍:
一、Samba软件实现共享Linux文件系统给Windows用户
Samba软件被誉为10大最有价值的开源软件之第五位。其获取方式非常容易,配置使用也非常简单。下面以fedora系统为例,先看一下本地是否已经安装好samba,如果/etc/init.d/smb 文件存在,则说明已经安装好了samba软件,否则使用如下命令安装:
yum&install&samba&
安装完成后,修改配置文件,打开:/etc/samba/smb.conf,在文件末尾加上如下配置:
[root] &&&comment&=&root&&&path&=&/& &&&creat&mask&=&64&&&writeable&=&yes& &&&browseable&=&yes&&&valid&users&=&root&
这个配置的意思是,创建一个名为root的共享,将根文件目录&/&共享给用户。允许登录的用户名是root。
然后给samba系统添加root用户,使用如下命令:
smbpasswd&-a&root&
按照提示设置root用户的密码。
重新启动samba服务。
service&smb&restart&
检查smb进程是否已经运行:
root&&&&&&&&0.4&&3&?&&&&&&&&Ss&&&21:51&&&0:00&smbd &root&&&&&&&&0.2&&3&?&&&&&&&&S&&&&21:51&&&0:00&&\_&smbd&
在需要访问该Linux系统的Windows客户机上面,打开Windows的资源管理器,在地址栏输入:
会发现,提示有一个共享root,双击访问时,提示输入用户名和密码,输入此前配置的root用户和密码即可访问。这里就是Samba软件实现了CIFS的服务端,Windows资源管理作为客户端访问远程的共享文件系统。为了更为方便的使用该文件系统,还可以将该共享映射成一个本地的盘符,让Windows上面的各种工具像使用本地磁盘一样使用该目录。所有在Windows上面对该共享做的操作都会实时同步到Linux系统上面。
二、Linux访问Windows的共享
上面的借助于Samba的方式是大家常用的。还有一种,Windows系统天然就是一个CIFS的服务端和客户端,既然Windows系统可以给Windows系统共享目录,那么Linux系统能否访问这些共享呢?答案是肯定的,由于有强大的VFS支撑,Linux支持挂载和访问各种文件系统。mount工具支持挂在CIFS甚至NTFS的文件系统。如果是Windows本机上面的Linux虚拟机,那么可以直接通过虚拟机管理软件,如Vmware直接共享本地的磁盘分区给Linux系统,Linux系统根据Windows的磁盘分区的文件系统类型挂载即可。这里不详述该方案。
进入本段的正题,首先我们需要共享一个Windows的目录:
下面以Windows XP为例,Windows 7未做验证,应该类似。在共享之前,首先需要确保Windows系统的server服务处于启动状态,如下图:
选择需要共享的目录,右键,属性,选择&共享&页,如下图:
选择在网络上共享这个文件夹,并指定共享名。根据需要选择是否允许远程用户修改该文件夹。这样这个文件夹就被共享给远程访问了。
在Linux系统下挂载该共享:
[root@f2&~]#&mount&-t&cifs&-o&username=&Test&&//192.168.1.100/sourcecode&/root/sourcecode &Password&for&Test@//192.168.1.100/sourcecode:&
按照要求输入指定用户的密码即可。
此时,Windows的共享sourcecode目录就已经挂载到Linux系统上面了,Linux系统可以像访问本地目录一样访问该目录了。
这种方法应该是更好的访问方式,因为一般而言,我们操作的文件和工作空间都是在Windows上面的,只有少数时候,需要在Linux上面进行编译,调试。但是用起来稍显麻烦。注意,此前曾遇到过Windows系统与虚拟出来的Linux系统之间无法传输数据的问题,原因是Windows系统的防火墙未开启。
原文链接:【编辑推荐】【责任编辑: TEL:(010)】
大家都在看猜你喜欢
原创头条头条外电头条
24H热文一周话题本月最赞
讲师:0人学习过
讲师:0人学习过
讲师:5人学习过
精选博文论坛热帖下载排行
本书依据最新版《软件设计师考试大纲》的考核要求,深入研究了历年软件设计师考试试题的命题风格和试题结构,对考查的知识点进行了提炼,并...
订阅51CTO邮刊java中怎样访问windows局域网中的共享文件夹 - 闲谈 - ITeye技术网站
将共享文件夹映射为本地磁盘就可以使用file的方式进行列举了 , 使用FileInputStream的方式进行文件的读取.
一、所用开发工具:(1)、eclipse :httP://www.eclipse.org(2)、jcifs :http://jcifs.samba.org/  二、前言 :   在Microsoft 网 络 系 统 中,SMB(Server Message Block, 服 务 信 息 块) 协 议 是Windows for Workgroup(WfWg)、Windows 95、Windows NT 和LanManager 用 来 实 现 共 享 局 域 网 上 文 件 和 打 印 机 的 协 议。 对 于 利 用Linux 和Windows NT 构 建 的 局 域 网 来 说,Samba 就 是 为Linux 提 供 的SMB 客 户 程 序/ 服 务 器 程 序 的 软 件 包, 其 功 能 是 实 现Windows 和Linux 互 相 共 享 对 方 的 磁 盘 空 间 和 打 印 机。通用网络文件系统简称CIFS,它事实上是windows平台文件共享的标准协议,它是windows eXPlorer,网络邻居和映射网络驱动器的底层实现协议。Java具有天然的平台无关性,使用JAVA可以访问任何类型的服务器或客户机上的共享文件系统,并且编写的软件产品可以运行于任何平台,因此用JAVA访问共享文件系统在企业应用中具有得天独厚的优势。  JAVA中的CIFS实现  Jcifs是CIFS在JAVA中的一个实现,是samba组织本着linux的精神,负责维护开发的一个开源项目。这个项目专注于使用java语言对cifs协议的设计和实现。他们将jcifs设计成为一个完整的,丰富的,具有可扩展能力且线程安全的客户端库。这一库可以应用于各种java虚拟机访问遵循CIFS/SMB网络传输协议的网络资源。类似于java.io.File的接口形式,在多线程的工作方式下被证实是有效而轻易使用的。目前jcifs的最新版本是jcifs-1.1.9  三:配置:(1)、设置运行环境,将jcifs-1.1.9.jar添加到工程 工程-----&属性-------&java builder path ------&库---------&添加外部jar ok!(2)、在另外一台计算机上建立共享文件夹和共享文件,本例中分别为:test ,response.txt(3)、编译运行下面程序  四、代码 :import jcifs.smb.SmbFileInputSpublic class ReadShareFile {  public static void main(String[] args) { byte buffer[] = new byte[1024] ; int readed = 0 ; try{ SmbFileInputStream in = new SmbFileInputStream ("smb://administrator:.168.0.22/test/response.txt") ; //建立smb文件输入流 while((readed = in.read(buffer)) != -1){ System.out.write(buffer); } }catch(Exception e){ e.printStackTrace(); } }}  五:代码说明 :smb://administrator:.168.0.22/test/response.txtsmb: 协议名为smbadministrator:登录用户名 注:为共享文件机子的登录名122122:登录密码 注:密码和登录用户名要以 “:”分割192.168.0.22:共享文件机子的iptest:共享文件夹response.txt:共享文件
shuaigg.babysky
浏览: 388031 次
来自: 济南
最终会调用到ScheduledFutureTask#run() ...
谢谢分享!
public static void main(String ...
我的也是就抛了一次异常
bjfuzh 写道我自己跑了下,那个抛异常的定时器,只执行了一 ...微信公众号:centoscn
centos与windows共享文件夹
本例是将windows共享文件夹挂载在linux机器的/mnt/windows/ 目录下进行访问。
windows机器ip:192.168.1.101 ,用户名:administrator 密码:123456
linux机器ip:192.168.1.102
一:在windows机器上创建一个文件夹(gongxiang)并将其设置为共享文件夹.
二:在linux机器上创建挂载目录/mnt/windows
&#mkdir /mnt/windows
&接下来就是将gongxiang目录挂载在/mnt/windows 目录下
#mount -t cifs -o username=administrator,password=123456 //192.168.1.101/gongxiang /mnt/windows
这样gongxiang目录就被挂载在/mnt/windows 下,进入/mnt/windows可以看到gongxiang里的所有文件
直接在/mnt/windows 目录下便可对windows系统上的共享文件进行拷贝。
Linux与Linux间通过什么共享文件呢&&NFS,Windows与Windows之间呢&&共享文件功能,那Windows与Linux之间通过samba。
检查是否安装samba
# rmp -qa|grep samba
若安装了,则会显示如下,
samba4-libs-4.0.0-58.el6.rc4.x86_64
samba-common-3.6.9-168.el6_5.x86_64
samba-winbind-3.6.9-168.el6_5.x86_64
samba-client-3.6.9-168.el6_5.x86_64
samba-3.6.9-168.el6_5.x86_64
samba-winbind-clients-3.6.9-168.el6_5.x86_64
否则,使用
# yum install smaba
安装samba.
设置开机启动
# chkconfig smb on
# chkconfig nmb on
也可以使用setup命令可通过界面配置开机启动服务,
新建smb用户用于访问Linux共享文件
# useradd smb
# 新建用户
# smbpasswd -a smb
# 修改密码
此时/home目录会增加一个smb的用户。该Linux用户目录将可直接共享到Windows下。若要共享其它文件,按步骤3配置文件。如果不用了,删除smb用户也是可以的,
# smbpasswd -x smb
# 删除smb用户
samba配置文件【/etc/samba/smb.conf】。
comment = Tmp Directories
path = /tmp
# 共享的Linux目录
public = no
# 目录不公开
writeable = yes
browseable = yes
valid users = smb
# 访问用户,上面新建的,也可以使用原来已有的
让smaba通过防火墙
使用samba需要穿过防火墙,因此根据不同情况,这里提供3种方法:
# system-config-firewall
配置/etc/sysconfig/iptables文件,添加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 137 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 138 -j ACCEPT
允许139 445 137 138几个端口通过。配置完后重启防火墙,
# /etc/rc.d/init.d/iptables restart
索性,把防火墙关了,
# service iptables stop
# 暂时关闭
# chkconfig iptables off
# 永久关闭
关闭SELINUX
# vim /etc/selinux/config
SELINUX=permissive
此时需要重启下系统,
# service samba start
# service samba restart # 重启
# service samba status
查看samba启动状态。
Windows访问
先查看Linux虚拟机网络ip地址,
# ifconifg
Link encap:Ethernet
HWaddr 00:0C:29:FD:DC:43
inet addr:192.168.56.58
Bcast:192.168.56.255
Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fefd:dc43/64 Scope:Link
在Windows下使用Win+R开启运行窗口,输入
\\192.168.56.58
即可访问Linux共享的目录。
# smbstatus
查看连接状态。
文件访问权限:
若无法从Windows中往共享目录中拷贝文件,可能由于共享目录对smb用户的写权限不足,Linux中使用chmod 777 -R dir可改变dir目录权限。由于权限原因,本文中使用/tmp目录共享,因为/tmp目录对所有用户的权限比较开放。
------分隔线----------------------------
导读 Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上...
导读 Chef是一个IT基础设施自动化软件,它可以管理你组织中所有的服务器和网络设备。...
自从甲骨文收购 MySQL 后,由于甲骨文对 MySQL 的开发和维护更多倾向于闭门的立场,很...}

我要回帖

更多关于 无权限访问共享文件夹 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信