现在很多程序员的开发环境都是Linux操作系统,很多时候需要在windows操作系统和linux操作系统之间进行文件传输和共享。当然文件传输工具有很多,比如Winscp,当然也可以用U盘拷贝。Samba是一个能在linux和windows之间进行文件共享的工具,当然它也能用在linux和linux之间的资源共享。


1.Samba服务安装

在Ubuntu下安装Samba服务器特别简单,执行以下命令:

sudo apt-get install samba

用apt-get安装samba时,会同时将samba依赖的其他库一并安装,非常简单方便。
安装完samba服务时会自动启动samba服务,但是这里注意samba服务进程的名字并不是samba,而是smbd和nmbd两个进程。你可以ps查看一下进程列表:

sudo ps -aux | grep smbd
sudo ps -aux | grep nmbd

如果两个进程都在,说明你的samba服务安装成功了。如果没有,就自己手动启动一下samba服务:

sudo /etc/init.d/smba start
sudo /etc/init.d/nmba start

2.Samba服务器配置

关于的Samba的配置分为两步:
1.Samba基本服务配置,就是修改smb.conf配置文件
2.Samba用户配置,因为Samba服务是有用户这个概念,需要用到smbpasswd这个命令添加用户。smbpasswd命令在安装samba服务时会一起安装上。

(1)Samba基本服务配置

smaba服务器的配置文件的位置在:

/etc/samba/smb.conf

这里说明一下,如果不是Ubuntu系统,samba配置文件的位置不一定在这个地方。
现在就需要修改smb.conf,比较好的习惯先把default文件先备份一下:

sudo cp smb.conf smb.conf.bak

smb.conf.bak文件名可以随便取一个,完全看个人习惯,我习惯在文件名后加一个.bak,代表backup备份的意思。备份以后,就可以放心大胆的修改smb.conf配置文件了。

首先需要明白一件事,配置samba服务器到底配置什么?所以在这里最该明白配置samba就是配置下面两条:

1. 配置需要共享的是哪个目录
 2. 配置该目录的访问权限

知道了这两点,我们就大概对修改smb.conf文件有个初步的认识了,不会一头雾水了。

sudo vim smb.conf    打开samba配置文件

该文件注释非常详细,读者可以仔细看一下,大概都能明白该配置文件都配置哪些功能,我们需要做的就是在文件最后加上自己Share Definitions配置块,如下所示:

[pi-share] 
    comment = RaspberryPi share
    path = /home/pi
    browseable = yes
    writable = yes
[pi-share]                      是共享定义的名字,这个可以随便取。
comment = RaspberryPi share     是对这个共享定义的描述,也可以随便写,但是尽量可以写一些有意义的文字
path = /home/pi                 是定义共享目录的路径
browseable = yes                是定义该目录可以浏览,相当于配置访问权限
writable = yes                  是定义该目录可以写,相当于配置访问权限

这个是samba服务器最简单的配置,但是也足够我们去传输和共享数据了。
Samba服务可以配置的项目非常之多,本文这里不再详述,需要的可以去google一下。

(2)Samba用户配置

       这里先说明一下Samba用户的概念。

       在linux里面,我们都知道有登陆用户这个概念,在Samba里面,也有登陆用户这个概念,那么Samba的登陆用户和linux的登陆用户有什么关系呢?
       Samba的登陆用户是包含在linux的登陆用户下的,也就是说,Samba的登陆用户必须是linux的登陆用户,所以在添加Samba的用户时,必须添加linux下存在的用户。我们都知道,linux一般有两个用户,一个是root用户和普通用户(当然普通可以是多个),所以这里我们就需要将linux下的一个用户添加到Samba用户下,利用smbpasswd命令添加用户,我的机器上普通用户名字是 pi

sudo smbpasswd -a pi

并一起设置Samba登陆用户密码。
到这里关于Samba的配置基本上就结束了,然后就是重启Samba。

sudo /etc/init.d/smbd restart
sudo /etc/init.d/nmbd restart

3.Windows访问samba服务器

       windows下访问samba服务器非常简单,直接在文件夹的地址栏输入两个反斜杠和linux的IP地址即可,如下(IP地址输入自己linux的IP地址)

\\192.168.0.2