Samba服务器是嵌入式linux开发必不可少的工具软件,它主要实现windows与linux共享。本文首先介绍了samba的相关知识,然后主要介绍了在Ubuntu9.10上安装samba服务器方法与步骤 。
1. Samba相关知识
自从出现NetBIOS协议,Microsoft用它实现了网络文件/打印服务,即大家熟知的打印与共享服务,它是基于SMB(Server Message Block)协议,实现不同计算机之间共享打印机、串行口和通讯抽象(如命名管道、邮件插槽等)。随着Internet的流行,Microsoft希望将这个协议扩展到Internet上去,成为Internet上计算机之间相互共享数据的一种标准。因此它将原有的几乎没有多少技术文档的SMB协议进行整理,重新命名为 CIFS(Common Internet File System),并打算将它与NetBIOS相脱离,试图使它成为Internet上的一个标准协议。
为了实现让Windows共享UNIX主机上的资源,可行的一种方法就是在UNIX计算机中安装支持SMB/CIFS协议的软件,这样Windows客户端就不需要更改设置,同对待Windows主机一样,能用UNIX计算机上的资源了。Samba就是用来实现SMB的一种软件,它的工作原理是让NetBIOS (Network Basic Input/Output System)和SMB这两个协议运行于TCP/IP协议之上,并且使用Windows的NetBEUI(Net BIOS Enhanced User Interface)协议,让类UNIX主机可以在网络邻居上被Windows主机看到。它的功能有:a. 实现Linux主机之间和Linux主机与Windows主机之间的文件共享; b. 实现Linux主机之间和Linux主机与Windows主机之间的打印机共享。
既然有这么好的工具,那我们就可以实现在xp上共享虚拟机ubuntu9.10上的资源,给更习惯于WINDOWS操作的嵌入式linux开发程师(像我一样的)带来更大的便利。
2. ubuntu安装和配置samba服务器
2.1 首先,安装samba服务器软件
sudo apt-get install smbfs
2.2 接下来,配置samba服务器
假设你要共享的文件夹为: /home/reille(这是我ubuntu上用户reille的目录)。如果没有这个共享文件夹,先要创建这个文件夹,有的话就不用了,然后改其权限:
chmod 777 /home/reille
2.3 备份并编辑smb.conf,配置为需要用户密码访问
2.3.1 :
sudo gedit /etc/samba/smb.conf
2.3.2 :搜寻下面这行文字:
(在smb.conf文件中,;和#都表示注释)
然后,用下面这几行取代:
username map = /etc/samba/smbusers
2.3.3 :
将下列几行新增到文件的最后面,假设允许访问的用户为:smb。而文件夹的共享名为samba_share
comment = Shared Folder with username and password
path = /home/reille
public = yes
writable = yes
valid users = smb
create mask = 0777
directory mask = 0777
force user = nobody
force group = nogroup
available = yes
browseable = yes
这两行
directory mask = 0777
表示用户访问这个共享文件夹时,可以在这个共享文件夹上创建文件和目录。
2.3.4 :
然后顺便把这里改一下,找到[global]把 workgroup = WORKGROUP 改成
display charset = UTF-8
unix charset = UTF-8
dos charset = cp936
第一行是你的WINDOWS所在的工作组,适你的计算机进行更改
后面的三行是为了防止出现中文目录乱码的情况。其中根据你的local,UTF-8 有可能需要改成 cp936。自己看着办吧。
2.4 :
现在要添加smb这个网络访问帐户。如果系统中当前没有这个帐户,那么
注意,上面只是增加了smb这个用户,却没有给用户赋予本机登录密码。所以这个用户将只能从远程访问,不能从本机登录,换句话说,在/home目录下不会有smb这个文件夹。而且samba的登录密码可以和本机登录密码不一样。
2.5:
新增网络使用者的帐号:
sudo gedit /etc/samba/smbusers
并在新建立的文件smbusers内加入下面这一行并保存:
2.6:
如果将来需要更改newsfan的网络访问密码,也用这个命令更改:
如果要删除网络使用者的帐号,把上面命令的 -a 改成 -x。
2.7:
最后退出重新登录或者重新启动一下机器:
3. 验证samba服务器是否安装成功
配置好并重新登陆或重新启动后,可以验证下samba服务是否安装成功。
我的ubuntu9.10的IP地址是:192.168.1.125
使用命令如下进行验证:
输入密码登陆成功后,如果安装成功,如出现如下提示信息:
Domain=[MSHOME] OS=[Unix] Server=[Samba 3.4.0]
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
Share Disk Shared Folder with username and password
IPC$ IPC IPC Service (ubuntu server (Samba, Ubuntu))
Domain=[MSHOME] OS=[Unix] Server=[Samba 3.4.0]
Server Comment
--------- -------
UBUNTU ubuntu server (Samba, Ubuntu)
WWW-BB0415062B9 guoyirong
Workgroup Master
--------- -------
MSHOME WWW-BB0415062B9
或者从windows下进入,在文件夹界面的地址栏上输入:
回车后会进入到ubuntu的共享文件夹,可以看到我们要共享的文件夹:samba_share
4. 把ubuntu共享的文件夹:samba_share映射成为一个网络驱动器
在windows下可以把ubuntu共享的文件夹:samba_share映射成为一个网络驱动器,这样你就可以像访问C、D盘一样访问这个共享的文件夹。
点击桌面上我的电脑,然后单击右键,在菜单中选择【映像网络驱动器(N)…】,然后选择驱动器的名称,和共享文件夹的路径。。这都是很容易的事情,就不再详细描述了。。。