嵌入式环境搭建之samba


嵌入式环境搭建之samba
 
本文主要介绍了samba存在的前因后果,已经对samba进行简要介绍;并介绍了samba在ubuntu下安装,samba服务器端配置以及如何在window7共享samba服务器。最后,总结了samba的使场景。
一、      Samba的前世今生
在早期网络世界中,文档和数据在不同主机之间的传输大多是使用 FTP 来进行传送。不过,使用FTP 传输文档和数据却存在一个缺陷,那就是无法直接修改Server上面的文档和数据!即当你要修改服务器上某个文件时,必须想将该文件从服务器上下载到客户端后才能修改,修改后再将其上传到服务器端。从该过程中,可以看出该文件在Server和Client端都会存在。如果有时你修改了一个文档,但是你却忘记将该文档上传回到主机,那么将会造成客户端和服务端文档版本不对。
所以,IT界的前辈们就提出可不可以在 Client 端的机器上面直接取用Server 上面的文档,如果可以在 Client 端直接进行 Server 端档案的存取,那么在Client 端就不需要存在该档案数据,也就是说,只要有 Server 上面的档案资料存在就可以!那么有没有这样的 File System ?--------》NetworkFile System, NFS 就是这样的文档系统之一!只要在 Client 端将 Server所提供分享的目录挂载进来,那么在 Client 的机器上面就可以直接取用 Server上的档案数据,而且,该数据就像 Client 端上面的partition 一般!而除了可以让 Unix Like 的机器互相分享档案的NFS 服务器之外,在微软( Microsoft ) 上面也有类似的文案系统,那就是 CommonInternet File System, CIFS 这个咚咚啦!CIFS 最简单用法就是目前常见的『网络上邻居』。Windows 系统的计算机可以透过桌面上『网络邻居』来分享别人所提供的档案数据。不过,NFS仅能让 Unix 机器沟通, CIFS 只能让 Windows 机器沟通。那么有没有让Windows 与 Unix-Like 这两个不同的平台相互分享档案数据的档案系统?
二、   samba简介
Samba就是在上面所提到的需求下产生了。Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。它可以实现windows和Unix-Like两个平台之间互相分享文档和数据。
三、   samba的安装
在Ubuntu12.04之后,系统会自带samba系统。如果在以前的Ubuntu系统中可以通过下面的命令进行安装。
sudo apt-get install samba samba-common
四.配置smb.conf文件
Samba的配置文件一般就放在/etc/samba目录中,主配置文件名为smb.conf,文件中记录着大量的规则和共享信息,所以是samba服务非常重要的核心配置文件,完成samba服务器搭建的大部分主要配置都在该文件中进行。
Samba服务器的工作原理是:客户端向Samba服务器发起请求,请求访问共享目录,Samba服务器接收请求,查询smb.conf文件,查看共享目录是否存在,以及来访者的访问权限,如果来访者具有相应的权限,则允许客户端访问,最后将访问过程中系统的信息以及采集的用户访问行为信息存放在日志文件中。
4.1 samba配置文件中各字段的含义:
(1)security = user
说明:设置用户访问Samba Server的验证方式,一共有四种验证方式。
1> share:用户访问Samba Server不需要提供用户名和口令, 安全性能较低。
2.>user:Samba Server共享目录只能被授权的用户访问,由Samba Server负责检查账号和密码的正确性。账号和密码要在本Samba Server中建立。
3.> server:依靠其他Windows NT/2000或Samba Server来验证用户的账号和密码,是一种代理验证。此种安全模式下,系统管理员可以把所有的Windows用户和口令集中到一个NT系统上,使用Windows NT进行Samba认证, 远程服务器可以自动认证全部用户和口令,如果认证失败,Samba将使用用户级安全模式作为替代的方式。
(2)comment = 任意字符串
说明:针对共享资源所做的说明文字,默认为空字符串。
(3)path = 共享目录路径
说明:path用来指定共享目录的路径。可以用%u、%m这样的宏来代替路径里的unix用户和客户机的Netbios名,用宏表示主要用于[homes]共享域。例如:如果我们不打算用home段做为客户的共享,而是在/home/share/下为每个Linux用户以他的用户名建个目录,作为他的共享目录,这样path就可以写成:path = /home/share/%u; 。用户在连接到这共享时具体的路径会被他的用户名代替,要注意这个用户名路径一定要存在,否则,客户机在访问时会找不到网络路径。同样,如果我们不是以用户来划分目录,而是以客户机来划分目录,为网络上每台可以访问samba的机器都各自建个以它的netbios名的路径,作为不同机器的共享资源,就可以这样写:path = /home/share/%m 。
(3)browseable = yes/no
说明:browseable用来指定该共享是否可以浏览。
(4)writable = yes/no
说明:writable用来指定该共享路径是否可写。
(5)read only:用于设置共享的资源是否为只读。
read only =yes:允许只读
read only = no; 可读写
(6)available = yes/no
说明:available用来指定该共享资源是否可用。
(7)admin users = 该共享的管理者
说明:admin users用来指定该共享的管理员(对该共享具有完全控制权限)。在samba 3.0中,如果用户验证方式设置成“security=share”时,此项无效。
例如:admin users =bobyuan,jane(多个用户中间用逗号隔开)。
(8)valid users = 允许访问该共享的用户
说明:valid users用来指定允许访问该共享资源的用户。
例如:valid users = bobyuan,@bob,@tech(多个用户或者组中间用逗号隔开,如果要加入一个组就用“@+组名”表示。)
(9)invalid users = 禁止访问该共享的用户
说明:invalid users用来指定不允许访问该共享资源的用户。
例如:invalid users = root,@bob(多个用户或者组中间用逗号隔开。)
(10)write list = 允许写入该共享的用户
说明:write list用来指定可以在该共享下写入文件的用户。
例如:write list = bobyuan,@bob
(11)public = yes/no
说明:public用来指定该共享是否允许guest账户访问。
(12)guest ok = yes/no
说明:是否允许用户不使用帐号和密码访问此资源。
guest  ok=yes:允许用户不使用帐号和密码访问此资源
guest  ok=no:不允许用户不使用帐号和密码访问此资源
(13)host allow:设置连接主机的地址:
hosts allow = 192.168.0.server.abc.com:即允许来自192.168.0.或
server.abc.com
(13)host deny:设置禁止连接的主机地址
hosts deny = 192.168.2:即不允许来自192.168.2主机访问此samba服务器的资源
4.2实例:
如果要实现将ubuntu主机上的所有文件和windows用户进行共享。可以使用以下的配置.
[hostname]
        path=/home/hostname
        valid users=hostname
        public=no
        writable=yes
        printable=no
        create mask=0765
        security= user
Note:将上面的配置信息复制到/etc/samba/smb.conf文件中的最后,在将上面标红的部分改成自己对应的主机名即可。
4.3设置samba密码
当在windows映射ubuntu主机时,要用到该密码,该密码与ubuntu登录密码可以不一样。
命令格式为:
smbpasswd–a  hostname
Note:hostname为自己ubuntu的主机名。
4.4.restart samba
设置完之后,重新启动samba服务。在ubuntu下使用命令:service smbd  restart 重新启动samba服务。
四.使用Windows共享ubuntu
1.打开我的电脑,右击映射网路驱动器,输入ubuntu主机的ip地址和主机名(\\server\hostname),例如\\192.168.1.99\jibo。
 
 
2.然后,点击浏览后,输入刚才设置的samba密码即可进行网络映射。
Ok, youcan enjoy it!!!
总结:
(1)Why(为什么要出现samba)
为了实现unix like机器和windows机器之间文件的共享。
(2)how(Samba的使用场景)
1>Windows与Linux的网络共享协议,使用于虚拟机和本机以及远程Server与本机的共享
2>对于同一个共享文件,针对不同的用户可设置不同的权限,可设置密码保护
3>把linux机器当作服务器,多台windows客户机通过samba来共享linux机器之间的数据和文件,适合团队开发
4>即时同步

相关内容

    暂无相关文章