当前位置: 首页 > 嵌入式Linux > 正文

嵌入式之行(6):论共享的N种方法

说明:

1、本文讲述了几种共享的方法。本文中虽然出现了虚拟机、物理机,但希望诸君能理解好这些专有名词的本质,这里的“服务器”主要是指Linux系统,而“客户机”主要是指Windows系统。解决一个问题的方法有很多种,找到适合我们自己的就OK了。 

2、本文所涉及的服务,除了使用时手动启动外,还可以设置开机自动启动。在Fefora下的以root身份输入setup,选择System service进行设置就可以了。

3、如果FTP连接不成功,可能是Windows的防火墙没有关闭,也可能是Linux的防火墙阻止,还可能是由于SELinux——远程登陆CVS时也可以是这些问题导致连接失败。

1、连接服务器式

先在Windows下设置好共享目录,这个很简单,不多说。在Linux系统中,点击左上角的“位置”->“连接到服务器”,即出现一个对话框,“服务类型”(这个是下拉表形式)选择“Windows共享”,“服务器”输入WindowsIP地址,“共享”处输入前面设置好的共享目录。如图1所示,单击“连接”按钮,出现“输入密码”对话框,直接点击“连接”即可。稍等片刻,即会在Linux桌面出现共享目录,如图2所示。

 共享设置

 

1 共享设置

 已共享目录

 

2 已共享目录

这种方法适用于将Windows下的某些文件“放入”Linux系统中,比如,交叉编译工具,内核,等等。这种方法需要保证网络连接性。(木木评曰:废话!)

2、samba方式

修改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身份),就可以配置防火墙了。此外,一些系统服务也是在这里配置的,如这里用到的winbindnmbsmbNFS用到的nfsFTP用到的vsftp

windows下的网上邻居地址栏处输入LinuxIP地址,如:192.168.1.16,回车,即出现一个对话框,要求输入用户名和密码,这便是方才建立的用户密码。

登陆samba

3 登陆samba

确定后,便会出现如图的界面,可以看到,刚才创建的share目录已经出现了。其它两个目录均为默认的共享目录,可以不用理会。

 

已共享目录

4 已共享目录

 

出错

5 出错

如果不能访问,可能是由于防火墙的问题,也可能是SELinux的问题,如果是SELinux,可以将SELinux禁止掉,——在“系统”->“管理”->SELinux Administration中禁止。

参考http://blog.sina.com.cn/s/blog_607142c90100ecdf.html

3、FTP方式

通过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  查看服务器文件

 下载(get)文件

8  下载(get)文件

 

对于匿名上传设置,以下为网络的文章片段:

允许匿名用户上传文件,需要在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目录进行好作,而incomingroot所有,匿名用户(ftp)对于incoming来说是其他用户,所以要加入其他用户(o)的写权限。或者将incoming目录的用户和组都改为ftp,使用以下命令。

#chown ftp.ftp /var/ftp/incoming

最后重新启动vsftpd服务。

# /etc/init.d/vsftpd restart

4、SSH方式

此外,还可以使用第三方软件实现共享,比如Secure Shell软件,登陆系统如下图:

 SSH

9 SSH

成功登陆后,可以操作该系统了,比如下图,可以看到,只有一个目录显示是正常的,即share目录,其它就是乱码了,至于原因,大家应该知道,不多说。

 SSH登陆到Linux

10 SSH登陆到Linux

它也可以用来传文件,单击“Windows->New File Transfer”,即可出现下图界面:

 互传文件界面

11 互传文件界面

这时可以通过鼠标来拖动要共享的文件了,上图中,左边的文件可以拖到右边,反之亦然。也可以在右边窗口操作文件,比如删除,添加目录等。很方便。

本文固定链接: http://www.latelee.org/embedded-linux/learning-elinux-6-sharing.html

如无特别说明,迟思堂工作室文章均为原创,转载请注明: 嵌入式之行(6):论共享的N种方法 | 迟思堂工作室

目前暂无评论

发表评论

*

快捷键:Ctrl+Enter