在说明如何在ubuntu9.10上(其它版本ubuntu差不多)安装samba服务器之前,先介绍下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 samba
- sudo apt-get install smbfs
2.2 接下来,配置samba服务器,假设你要共享的文件平为: /home/reille(这是我ubuntu上用户reille的目录)。
如果没有这个共享文件夹,先要创建这个文件夹,有的话就不用了,然后改其权限:
- mkdir /home/reille
- chmod 777 /home/reille
2.3 备份并编辑smb.conf,配置为需要用户密码访问:
2.3.1 :
- sudo cp /etc/samba/smb.conf /etc/samba/smb.conf_backup
- sudo gedit /etc/samba/smb.conf
2.3.2 :搜寻下面这行文字:
- ; security = user 或 # security
(在smb.conf文件中,;和#都表示注释)
然后,用下面这几行取代:
- security = user
- username map = /etc/samba/smbusers
2.3.3 :
将下列几行新增到文件的最后面,假设允许访问的用户为:smb。而文件夹的共享名为samba_share
- [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
这两行
- create mask = 0777
- directory mask = 0777
表示用户访问这个共享文件夹时,可以在这个共享文件夹上创建文件和目录。
2.3.4 :
然后顺便把这里改一下,找到[global]把 workgroup = WORKGROUP 改成
- workgroup = MSHOME
- display charset = UTF-8
- unix charset = UTF-8
- dos charset = cp936
第一行是你的WINDOWS所在的工作组,适你的计算机进行更改
后面的三行是为了防止出现中文目录乱码的情况。其中根据你的local,UTF-8 有可能需要改成 cp936。自己看着办吧。
2.4 :
现在要添加smb这个网络访问帐户。如果系统中当前没有这个帐户,那么
- sudo useradd smb
注意,上面只是增加了smb这个用户,却没有给用户赋予本机登录密码。所以这个用户将只能从远程访问,不能从本机登录,换句话说,在/home目录下不会有smb这个文件夹。而且samba的登录密码可以和本机登录密码不一样。
2.5:
新增网络使用者的帐号:
- sudo smbpasswd -a smb
- sudo gedit /etc/samba/smbusers
并在新建立的文件smbusers内加入下面这一行并保存:
- smb = "network username"
2.6:
如果将来需要更改newsfan的网络访问密码,也用这个命令更改:
- sudo smbpasswd -a smb
如果要删除网络使用者的帐号,把上面命令的 -a 改成 -x。
2.7:
最后退出重新登录或者重新启动一下机器:
- sudo /etc/init.d/samba restart
【3. 验证samba服务器是否安装成功】
配置好并重新登陆或重新启动后,可以验证下samba服务是否安装成功。
我的ubuntu9.10的IP地址是:192.168.1.125
使用命令如下进行验证:
- smbclient -L //192.168.1.125 -U smb
输入密码登陆成功后,如果安装成功,如出现如下提示信息:
- Enter smb's password:
- 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下进入,在文件夹界面的地址栏上输入:
- //192.168.1.125
回车后会进入到ubuntu的共享文件夹,可以看到我们要共享的文件夹:samba_share
【4. 把ubuntu共享的文件夹:samba_share映射成为一个网络驱动器】
在windows下可以把ubuntu共享的文件夹:samba_share映射成为一个网络驱动器,这样你就可以像访问C、D盘一样访问这个共享的文件夹。
4.1 :
点击桌面上我的电脑,然后单击右键,在菜单中选择【映像网络驱动器(N)...】,然后选择驱动器的名称,和共享文件夹的路径。。这都是很容易的事情,就不再详细描述了。。。