首先,在搭建这个环境之前,我们须要了解一下NFS-samba-tftp之间的区别ubuntu linux,这个好多做嵌入式移植的同事应当是再熟悉不过了。不过甚少有人揣测她们究竟有哪些区别?这儿我也不讲深入的本质,简单的区别一下她们。这儿我就引用一下网上一些文章吧。
NFS是SUNMicrosystem公司开发的网路文件系统,它是一种基于远程过程调用(RPC)的分布式文件系统构架。与Samba相比较,NFS的数据吞吐能力更强。
1、用命令#rpm–qa|grepnfs检测软件包NFS是否安装,假若输出没有输出,表明没有被安装,请自行安装之。
2、配置NFS服务器。用任何文本编辑器配置文件/etc/exports,来确定须要给顾客共享的目录。它的基本格式为DirectoryHost(options)#comments,这3个数组/列要在一行,directory与host(options)之间要有间隙,#comments可有可无。主机选项主要是给予挂接用户哪些样的权限。目录directory表示要共享出去的目录,值得注意的是,在启用NFS服务曾经,系统管理员应当仔细一些,例如不留神共享了根目录/,但是给予用户读写权限linux samba 用户管理,这是非常糟糕的问题。为此,尽可能少的共享目录和赋于较小的访问权限。主机名host是一个很灵活的项目,可以是单个的主机名称(由/etc/hosts得到),主机ip地址,由域名服务器解析的主机名称,IP网路—网络号和子网网段中间用“/”连接,NIC等。下边列出一个反例。
/home/serysery(r,w)#把目录/home/sery共享给主机sery,但是主机对目录#/home/sery有读写权限
/tmp192.168.100.18(ro)#主机192.168.100.18对目录/tmp具备只读共#享权限
/media/cdrom192.168.100.0/255.255.255.0(r,o)#整个网路有读取挂接在NFS
#服务器上的硬盘光碟的读取权限
3、启用NFS服务。分两步:首先启用portmap,之后启用NFS服务。#serviceportmapstart;
#servicenfsstart。其中portmap的功能是启用远程过程调用,有时启用NFS不能成功,不妨检测一下portmap服务是否启动(#psaux|grepportmap)。
4、在顾客端挂接NFS共享下来的目录。先在顾客端创建一个挂接点,如#mkdir/mnt/nfs,而后使用命令把nfs服务器共享下来的目录挂接上,以第2步那种共享为例,我们挂接目录/tmp,#mount–tnfs192.168.100.100:/tmp/mnt/nfs//假设nfs服务器的ip地址是192.168.100.100。
5、访问NFS共享资源。接上步,改变文件目录#cd/mnt/nfs就便捷地实现了对nfs服务器目录/tmp的远程访问。
6、卸载NFS文件系统。在顾客端执行命令#umount/mnt/nfs就卸下了第4步挂接的NFS文件系统。
7、其他事项。上面我们描述了在顾客段用手工挂接NFS文件系统的操作,有的场合可能须要手动实现对NFS的挂接操作;更改文件/etc/fstab,把挂接项插入进去就可以了。对一个有较多联接的NFS服务器而言,有这样一个问题—用户在使用完挂接的文件系统后,并不会总记得卸载掉NFS挂接,这必然会减小NFS服务器的维护工作量以及白白占用有限的系统和网路资源;解决这个问题的办法是使用手动挂接器(automounter)。关于手动挂接器属于性能调优的范畴,在此不做描述。
samba服务配置
1、首先,下载安装samba服务器
#apt-getinstallsamba
2、配置samba服务器的配置文件/etc/samba/smb.conf,默认可以根据下边的设置来
# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
security = share
----早期的linux版本的配置文件smb.conf的安全选项“security=share”,这个默认值是个安全隐患,不过现在流行的linux版本的安全选项的默认值是“security=user”
[gzpl] ----这里的gzpl是共享的地址别名,可以自己修改
comment = Shared Folder with username and password
path = /home/gzpl ----代表上面gzpl的具体目录
guest ok = yes
readonly = no
locking = no
public = yes
writeable = yes
valid users = root ----指你登录的用户,可以不用root登录,这里是为了方便
available = yes
browseable = yes
说明:validusers=myname这个myname是自己起的,前面在添加用户名时就是添加的这个;
另外这个[share]名子也是可以随意起的,这个是你在windows下访问时显示的名子。
在windows下\162.168.160.11gzpl就可以访问linux下/home/gzpl/code目录下的内容了;
其中162.168.160.11是你linux的IP地址,用ifconfig就可以查看到。
4、建立Samba用户密码文件。其实samba的用户是系统用户,但出于安全考虑,samba用户的密码并非创建系统用户时设定的用户密码。为了生成smb所需的密码,应当进行下边的操作:
sudo useradd myname
里面只是降低了myname这个系统用户linux samba 用户管理,却没有给用户赋于本机登陆密码。所以这个用户将只能从远程访问,不能从本机登陆。并且samba的登陆密码可以和本机登陆密码不一样。这个你可以在重启机器时听到这个你添加的用户,并且你却用它登录不了系统,由于没有赋于本机登陆密码。
sudo touch /etc/samba/smbpasswd
sudo smbpasswd -a myname
(假如你直接用系统中的帐号,这儿myname就是你系统中的帐户即可)之后会要求你输入samba账户的密码,这个密码不是开机登陆时侯用的,是你要访问WIN共享文件或则WIN共享文件访问你的时侯要填的密码,如今要新增网路使用者的账号:
sudogedit/etc/samba/smbusers
在新构建的文件内加入下边这一行并保存代码:
myname=“networkusername”
[若果没有第四步,当你登入时会提示sessionsetupfailed:NT_STATUS_LOGON_FAILURE]删掉网路使用者的账号的命令把里面的-a改成-x即:
sudo smbpasswd -x myname
这样生成的用户,你须要更改到里面validusers上,作为samba的登陆用户。
5.重启samba服务器:
sudo testparm 验证一下配置参数有没有问题,如果有问题在回去修改
sudo /etc/init.d/samba restart
6.测试:
smbclient -L //localhost/share 或者
smbclient -L \127.0.0.1 -U myname //这时输入的密码就是你刚才设置的samba密码
7.使用:
可以到windows下输入ip使用了,在文件夹处输入"\"+"Ubuntu机器的ip或主机名"+"\"+"share";
我的即为:\162.168.160.11share(share就是昨晚smb.conf中的[share])第一次步入时要输入用户名和密码,这个就是你在第四步中设置的用户名和密码。
点击win7下的映射网路驱动器,把Linux下的/home/gzpl文件夹映射到win下。
参考链接:ubuntu下samba配置
在linux环境下,在Linux和windows机器之间交换文件可以通过ftp。有三个主要的FTP服务器:vsftpd、proftpd和wu-ftpd。由于安全方面的缘由,vsftpd目前早已牢牢的抢占了主导地位。从字面上我们就可以理解vsftpd所具备的主要特点—verysecure(十分安全之ftp)。资料表明:1、使用ASCII形式下载文件,在1G以太网上的下载速率可以达到86M/s。2、vsftpd可以支持15000个并发用户的访问。
1、检查是否安装vsftp包。#rpm–qa|grepvsftpd。假如没有则安装它。
2、修改配置文件。Vsftpd的配置文件为/etc/vsftpd/vsftpd.conf,倘若不准备提供匿名访问的话,须要更改配置文件/etc/vsftpd/vsftpd.conf的项“anonymous_enable=Yes”为“anonymous_enable=No”。
3、启用vsftpd服务。#servicevsftpdstart。
4、客户端联接访问。可以是专用的ftp顾客端工具,也可以使用浏览器。用工具访问vsftpd服务器的速率要比用浏览器快好多。
5、vsftpd服务器的用户。Vsftpd服务器支持三种类型的拥护:本地用户(拥有系统帐号)、虚拟用户(guest)、匿名帐号;系统管理员应当按照安全需求来确定vsftpd服务器的用户访问策略。
TFTP服务器
Tftp服务器主要用于远程系统引导或远程备份象CISCO这样的网路设备的配置文件,比如tftp服务器与DHCP、FTP服务器相配合,就可以成为一组linux安装服务器,以利于进行大规模的网路安装linux操作系统。
与上文提到的几种服务器不同,tftp服务器是由超级守护进程xinetd运行的。这使的tftp服务器的配置操作比独立运行守护进程的服务器(如vsftpd)简单好多。通常情况下,只要更改文件/etc/xinetd.d/tftp,把“disable=yes”改成“disable=no”,而后保存重新启动超级守护进程xinetd,#servicexinetdrestart。
通过前面的实践,虽然我们早已才能顺利的完成各类文件服务器的搭建和运行,也基本上可以满足基本的用户服务需求,其实在实际的工作中,可能有更多的性能或安全要求。一个显著的反例就是,假如一个用户的服务器使用的c盘空间没有做任何限制,这么他完全有可能把他从internet下载的电影上传到他自己的文件服务器目录,因而把有限空间的硬碟填满。另外一个就是目录和文件的权限问题,非常是以本地帐号(系统帐号)访问文件服务器的情况,若果授权不当,将给系统管理带来极大的麻烦。
Linux所提倡的自由精神也同样在这种服务器的配置操作中得以彰显。可以通过更改那些服务器的配置文件来满足特定的需求,但是这种更改是十分灵活的。例如vsftpd服务器的配置文件/etc/vsftpd/vsftpd.conf就有好多项目可以更改。
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
里面讲了如此多,大部份是网上转载的。下边我再来看看,嵌入式开发中应用samba还有NFS的一个反例。这也是这个文章最终要讲的东西。
我想好多菜鸟在开发Linux应用程序的时侯,希望应用程序是可以在板子上跑的中国linux,并且,每次要下载进去跑很麻烦,但是过程很冗长。这么有哪些办法可以实现主机文件和开发版的文件夹共享呢?那就是samba+nfs。
1.首先在根据前面所说的方式配置好Linuxhost端的samba并保证可用。而且samba主机Linux上的开发文件夹到win7
2.NFS挂在hostLinux的开发文件夹到开发板。这个确定开发版和主机的操作系统是支持并开启了NFS服务的,具体方式参见前面描述的。
sudo mount 192.168.100.ubuntuIP:/home/gzpl /mnt -t nfs -o nolock
这条命令可以置于开发版启动脚本上面,不过必需要在启动网卡以后,否则将会失败。
这样一来便实现了,开发板---〉Linuxhost〈---win7这样的文件共享模式,这样你就可以在win7上轻松的使用sourceinsight进行代码编辑了,她们的代码是实时同步的。
OVER~~~~