分类: 嵌入式
2010-06-20 22:28:37
说明:
1、本文讲述了几种共享的方法。本文中虽然出现了虚拟机、物理机,但希望诸君能理解好这些专有名词的本质,这里的“服务器”主要是指Linux系统,而“客户机”主要是指Windows系统。解决一个问题的方法有很多种,找到适合我们自己的就OK了。
2、本文所涉及的服务,除了使用时手动启动外,还可以设置开机自动启动。在Fefora下的以root身份输入setup,选择System service进行设置就可以了。
3、如果FTP连接不成功,可能是Windows的防火墙没有关闭,也可能是Linux的防火墙阻止,还可能是由于SELinux——远程登陆CVS时也可以是这些问题导致连接失败。
先在Windows下设置好共享目录,这个很简单,不多说。在Linux系统中,点击左上角的“位置”->“连接到服务器”,即出现一个对话框,“服务类型”(这个是下拉表形式)选择“Windows共享”,“服务器”输入Windows的IP地址,“共享”处输入前面设置好的共享目录。如图1所示,单击“连接”按钮,出现“输入密码”对话框,直接点击“连接”即可。稍等片刻,即会在Linux桌面出现共享目录,如图2所示。
图1 共享设置
图2 已共享目录
这种方法适用于将Windows下的某些文件“放入”Linux系统中,比如,交叉编译工具,内核,等等。这种方法需要保证网络连接性。(木木评曰:废话!)
修改samba配置文件,/etc/samba/smb.conf。
修改之处:
workgroup = WORKGROUP
netbios name = fedora9
在最后添加自己要共享的目录
如:
[share] //建立一个共享名为share的共享
comment = samba share //描述信息
path = /home/latelee/share //共享路径(最好是自己的主目录下的)
public = no //是否允许guest用户访问(相当于guest ok = yes/no)
writable = yes //是否可写
当然,这个也可以在图形界面上进行配置。
以root身份,为某一用户添加密码——其实,使用自己的账号完全可以,注意,samba中的用户,需要是Linux账号中的一个,详细见《鸟哥的Linux私房菜服务器架设篇》那本书。如下:
#smbpasswd -a latelee
回车,输入两次密码,即可添加samba用户,就可以在WIN下访问Linux的文件了。启动。
#service smb start启动smb服务
#service nmb start 启动nmb服务
注:以普通用户登陆,切换为root后,是不能执行/sbin中的命令的,而service是/sbin中的一个命令,可以这样:/sbin/service,或者将它列入自己的环境变量中,方法很简单,在/root/.bashrc文件最后一行添加PATH=$PATH:/sbin,再source /root/.bashrc,即可生效。
此时还要配置防火墙,在虚拟机中,禁止防火墙其实是可以的,当然也可以不禁止,而是信任某些程序,两种方法,都可以。
运行setup(root身份),就可以配置防火墙了。此外,一些系统服务也是在这里配置的,如这里用到的winbind,nmb和smb,NFS用到的nfs,FTP用到的vsftp。
在windows下的网上邻居地址栏处输入Linux的IP地址,如:,回车,即出现一个对话框,要求输入用户名和密码,这便是方才建立的用户密码。
图3 登陆samba
确定后,便会出现如图的界面,可以看到,刚才创建的share目录已经出现了。其它两个目录均为默认的共享目录,可以不用理会。
图4 已共享目录
图5 出错
如果不能访问,可能是由于防火墙的问题,也可能是SELinux的问题,如果是SELinux,可以将SELinux禁止掉,——在“系统”->“管理”->SELinux Administration中禁止。
参考http://blog.sina.com.cn/s/blog_607142c90100ecdf.html
通过FTP,可能实现两台电脑之间文件互传,可以是一台虚拟机与一台物理机之间,可以是两台Linux系统的电脑,无论哪一种方式,都是分为服务器与客户端。比如我一般使用虚拟机Linux作为FTP服务器,将需要传到Windows下的文件放到共享目录(/var/ftp/pub),再在Windows通过FTP客户端连接到服务器,客户端软件可以是cuteftp,可以是DOS下的FTP工具,等等。
在Linux下,FTP服务器一般是vsftp,即very secure FTP。它的配置文件为/etc/vsftp/vsftp.conf。主要的几个配置选项如下:
anonymous_enable=YES
local_enable=YES
write_enable=YES
download_enable=yes
dirlist_enable=yes
no_anon_password=yes // 匿名用户登陆不需要输入密码
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_mkdir_write_enable=YES
启动服务命令为:
#service vsftpd start(或restart)
在Linux下,有很多服务(工具)名称都是以d结尾的,它说明该服务(工具)是一个守护进程(daemon)。上面三张截图演示了登陆到下载文件的过程,这里的网络接连可以是VMnet8,可以是物理连接。登陆用户名为ftp,密码随意。
图6 FTP登陆
图7 查看服务器文件
图8 下载(get)文件
Linux下FTP的配置文件的参数详解可以参考以下文章:
对于匿名上传设置,以下为网络的文章片段:
允许匿名用户上传文件,需要在vsftpd.conf文件中修改或增加以下选项:
# 匿名用户对文件系统的上传目录具有写的权限
write_enable=YES
# 匿名用户具有浏览目录的权限
anon_world_readable_only=NO
# 允许匿名用户上传
anon_upload_enable=YES
#匿名用户具有写以及创建目录的权限
anon_mkdir_write_enable=YES
然后创建供匿名用户上传文件的目录,并设定权限,使用以下命令。
# mkdir /var/ftp/incoming
# chmod o+w /var/ftp/incoming
由于匿名用户(ftp)上传文件,需要对incoming目录进行好作,而incoming为root所有,匿名用户(ftp)对于incoming来说是其他用户,所以要加入其他用户(o)的写权限。或者将incoming目录的用户和组都改为ftp,使用以下命令。
#chown ftp.ftp /var/ftp/incoming
最后重新启动vsftpd服务。
# /etc/init.d/vsftpd restart
此外,还可以使用第三方软件实现共享,比如Secure Shell软件,登陆系统如下图:
图9 SSH
成功登陆后,可以操作该系统了,比如下图,可以看到,只有一个目录显示是正常的,即share目录,其它就是乱码了,至于原因,大家应该知道,不多说。
图10 SSH登陆到Linux
它也可以用来传文件,单击“Windows”->“New File Transfer”,即可出现下图界面:
图11 互传文件界面
这时可以通过鼠标来拖动要共享的文件了,上图中,左边的文件可以拖到右边,反之亦然。也可以在右边窗口操作文件,比如删除,添加目录等。很方便。