现在很多程序员的开发环境都是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