当前位置:Linux教程 - Linux - 如何实现Windows 与 Linux文件系统共享

如何实现Windows 与 Linux文件系统共享

日照市信息中心 许磊

Linux的开放性与免费理念吸引了无数的计算机爱好者,越来越多的人加入了Linux的阵营。但Linux使用的文件系统为Ext2,和传统的Windows系列的FAT不同,如何沟通两者间的资源成为应用中的一大问题。下面就介绍几种解决该问题的方法。
(一)同一机器上文件系统的共享
1.Windows系统下访问Linux分区信息
网络上提供一些程序用于在Windows系统下访问Linux分区信息,可以在http://uranus.it.swin.edu.au/~jn/linux/下找到相应软件;也可以在www.globalxs.nl站点下载程序fsdext.zip,解压后依照说明将vext2d.vxd、tsdext2.vxd拷贝到c:windowssystem目录下,使用命令mount /dev/hda2 g将Linux分区虚拟为新的盘符g,卸载也只需使用命令mount /u g即可轻松完成。

2.Linux系统下访问Windows分区信息
直接使用Linux 的mount 命令加配参数即可实现。
(二)不同机器间文件系统的共享
需要在Linux系统上配置NFS、Samba等服务进程以支持资源互访。下面介绍如何配置Samba服务进程。
Samba由两个守护进程smbd和nmbd组成,可由命令 /etc/rc.d/init.d/smb start 启动。启动时读取配置文件 /etc/smb.conf。查询是否启动可使用ps -ef |grep smbd命令;停止Samba可使用命令/etc/rc.d /init.d/smb stop。smb.conf文件主要包括以下部分:

1.Global (全局)参数
该部分设置整个系统的规则,定义了一些公共变量。
netbios name=web
定义Windows系统“网上邻居”中所见的机器名。
workgroup=SambaServer
定义服务器的工作组名。
server string=Samba Server
对主机的说明信息。
hosts allow=202.110.211.225
guest account=hgz
定义smb用户名称。
security=user
定义访问权限。访问权限由低到高有三种:share、user和server。其中share安全级别最低,user模式要求连接时输入用户名和口令,可由以下命令建立smb网络用户:
#dduser username 添加该用户为Linux用户。
#mbpasswd -a username 添加该用户为smb用户。
#mbpasswd username 修改smb账户的口令,最后与/etc/passwd中的口令一致。
server模式要求用户的认证由Samba服务器或NT服务器来完成。
encrypt passwords=yes
设置是否需要加密口令。因为Windows系列默认采用加密口令传输,而Linux默认采用非加密口令传输,为保证smb网络用户的正常登录,在user安全级下设置为加密,在share 安全级下可不设。
smb passwd file=/etc/smbpasswd
由命令cat /etc/passwd | mksmbpasswd.sh > /etc /smbpasswd产生。
interfaces=202.110.211.225/24
配置smb服务所使用的网卡IP以及子网掩码。A段网址为8, B段网址为16, C段网址为24。如果有两个以上网卡,要全部列出。
name resolve order=host dns bcast
设定smb服务时,从机器netbios名称到IP地址的解析方式,默认顺序为host lmhosts wins bcast。如果局域网内有DNS,可设置为host dns bcast。
wins support=no
设置是否有wins支持。
public = yes
为yes时,“网上邻居”中可见该资源,否则不可见。
browseable = yes
为yes时,“网上邻居”中可见该资源,否则不可见。
printing = bsd
指定Linux使用哪个打印机守护进程(bsd、sysv、hpux、aix、qnx、plp),同时向samba说明命令lpr和lpq的缺省值。
printcap name = /etc/printcap
定义了打印配置文件所处的位置。
load printers = yes
表明是否加载printcap 定义的所有打印机以供浏览。

2.Directory shares (目录共享部分)——包括标准[homes]部分
该部分通常定义了Linux机器上共享的目录资源,其名字可以由用户确定。段中的设置控制了每一个用户目录的共享权限。
Comment = Home Directories
设定在浏览本机资源时,出现在指定资源旁边的字符串。
Browseable = no
控制一项服务是否能够出现在网上邻居中,no意味着这个目录将在浏览时显示为要验证的用户名称,yes则显示 homes 和要验证的用户名称的共享目录。
Read only = no
控制是否允许通过验证的用户对主目录有写入的权限,但最终取决于该目录的 Unix 权限。无论 Unix 的权限怎样, 设置 read only = yes 后, 主目录只能是只读的。

3.Printer shares (打印共享)部分
Comment = All Printers
指定为哪些设备进行设置。
Browseable = no
指定是否能够浏览Windows 客户机的printcap 文件定义的全部打印机。
Printable = yes
指定是否允许不打印而去访问与打印服务相关的假脱机目录,例如:/var/spool/lpd/lp。
Public = no
指定未被Linux 用户名验证的Windows 客户机是否有权使用Samba 打印服务。
Writable = no
指定是否有权写假脱机目录。
Create mode = 0700
假脱机文件的缺省许可权限。
4.Public 部分,配置共享目录部分
Comment = Public Stuff ;说明部分
Path = / ;共享的Linux目录
Writable = no ;写权限
Printable = yes
配置文件设置完毕后,重新启动Samba,可以运行以下几个程序进行检测或共享Windows系统资源。
● 运行Testparm程序检测smb.conf的配置文件是否正确。
● 启动Samba2.0.3版本中的swat程序,就可以利用浏览器来配置smb.conf文件。编辑/etc/inetd.conf 文件,将其中swat前的注释去除,再由inetd 服务启动。重启后在Linux主机或相同的客户机浏览器的地址中输入http://Linux主机名或IP地址,就可以利用浏览器来进行smb.conf文件的配置与管理工作。
● 运行Smbstatus程序显示Samba 当前输出的共享资源。
● 可以把Smbclient程序用作一个基于Linux的Microsoft(smb)的客户,提供FTP模式界面,便于进行调试。
例如:smbclient -L 主机名 <口令> <-U 用户名>
可以查看主机的共享资源信息。smbclient \主机名共享目录名 <口令> <-U 用户名>可以连接网络共享资源。其用法类似ftp。
● Nmbclient是可以用来进行调试的程序。
● Smbfs程序是使用SMB协议工作的文件系统。
● Smbmount程序用于在Linux上安装smbfs。使用它可以将Windows共享目录安装在 Linux主机上。
例如:smbmount \主机名共享目录名 <口令> -c ‘mount /mnt/smb’命令就可以将指定主机的共享名安装到本地的目录。
● Smbumount程序用于卸载Smbmount建立的共享资源目录。
● Smbtar是一段shell脚本程序,它通过Smbclient使用 tar格式备份和恢复一台远程Windows的共享文件。