http://blog.csdn.net/zevin/article/details/8235821
为了实现Windows主机与Linux服务器之间的资源共享,Linux操作系统提供了Samba服务,Samba服务为两种不同的操作系统架起了一座桥梁,使Linux系统和Windows系统之间能够实现互相通信,为广泛的Linux爱好者提供了极大方便。本文简要介绍如何在Linux操作系统上搭建Samba服务器和简单配置。
1,Samba在服务器端linux机器上的安装与配置:
Samba服务在Ubuntu服务器版本中默认并没有安装。需要手动使用apt-get去安装:
(1)在终端中输入如下命令:
#sudo apt-get install samba
#sudo apt-get install smbclient
有些版本还需要安装smbfs : sudo apt-get install smbfs 但一般不需要。
(2)Samba服务器的启动、关闭和重启:
安装完成后,可以cd到/etc/init.d/目录下,查找smbd命令,然后执行如下命令:
启动Samba服务器:#sudo /etc/init.d/smbd start
关闭Samba服务器:#sudo /etc/init.d/smbd stop
重新启动Samba服务器:#sudo /etc/init.d/smbd restart
启动Samba服务器后,可以使用ps命令查看进程:#ps -aux。此时,可以看到Samba服务会同时启动两个服务,其中smbd主要用来管理共享出来的目录,nmbd主要用来解析NetBIOS名。在Windows系统中, 主机可以被加入一个组中,这样每个主机都必须有一个名字,这个名字是用于在网上被标志的名,并非机器的主机名,将其称为NetBIOS名。其中nmbd进 程是随着smbd进程启动而启动。
(3)创建共享目录:
makedir /home/steven/share
(4)更改目录权限:(此项非常重要,且容易忽略。如果不添加,当前用户启动的Samba程序将无法访问share目录
sudo chmod 777 /home/steven/share
(5) 配置Samba服务(修改Samba配置文件)
Samba服务器主要配置文件为/etc/samba/smb.conf,(并且可以将NetBIOS名与主机的对应关系写在/etc/samba /lmhosts文件中)此步骤可忽略。
在Windows系统中不用输入密码访问Linux共享目录:在Linux共享一个目录,将建立好的目录的设置信息写入/etc/smb.conf文件即可。
修改samba配置文件smb.conf:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak //修改配置文件之前最好做个备份
vim /etc/samba/smb.conf 或者使用 sudo gedit /etc/samba/smb.conf 打开配置文件
将文件中的内容做如下相应修改:
#security=user 删掉注释,修改为:security=share
在文件结尾添加如下行:
[share]
comment=this is Linux share directory
path=/home/steven/share
public=yes
writable=yes
browseable = yes
保存退出,启动Samba服务:#/etc/init.d/smbd start
(6)创建samba帐户:
创建账户信息文件:smbpasswd:(注意,此处文件名必须是smbpasswd,虽然启动程序是smbd,但是不可以将文件命名为smbdpasswd,否则程序无法识别该文件: sudo touch /etc/samba/smbpasswd
在该文件中添加samba用户,并设置密码:sudo smbpasswd -a steven (此处会要求你输入samba帐户的密码)
[如果没有上面这一步,当你登录时会提示 session setup failed: NT_STATUS_LOGON_FAILURE]
(7)重启Samba服务器,使配置文件的更改生效:#sudo /etc/init.d/smbd restart
至此,samba的基本设置完成!下面试验是否可用:
2,检查Samba是否安装配置正确:
(1)启动Samba客户端程序:smbclient -L //localhost/share
此时,会要求输入用户名及密码(这里的用户名与密码就是之前smbpasswd文件中设置好的那个)
例如:steven@ubuntu:/etc/samba$ smbclient -L //localhost/share
Enter steven's password:
输入密码以后,会有如下信息:证明Samba服务工作正常:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.6]
Sharename Type Comment
--------- ---- -------
IPC$ IPC IPC Service (ubuntu server (Samba, Ubuntu))
share Disk this is Linux share directory
print$ Disk Printer Drivers
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.6.6]
Server Comment
--------- -------
A-PC
steven
allen
...............................
(2)在Windows 下访问共享目录,可点击运行,输入\\192.168.0.10\share,这样就能以匿名用户访问共享目录share了。
关于windows下无写权限:chmod -R go+rwx share/
备注:
配置smb.conf文件
Samba的配置文件一般就放在/etc/samba目录中,主配置文件名为smb.conf,文件中记录着大量的规则和共享信息,所以是samba服务非常重要的核心配置文件,完成samba服务器搭建的大部分主要配置都在该文件中进行。Samba服务器的工作原理是:客户端向Samba服务器发起请求,请求访问共享目录,Samba服务器接收请求,查询smb.conf文件,查看共享目录是否存在,以及来访者的访问权限,如果来访者具有相应的权限,则允许客户端访问,最后将访问过程中系统的信息以及采集的用户访问行为信息存放在日志文件中。
第一步:修改配置文件
然后我们把这段写入smb.conf中
[global]
workgroup = LinuxSir
netbios name = LinuxSir05
server string = Linux Samba Server TestServer
security = share
[linuxsir]
path = /opt/linuxsir
writeable = yes
browseable = yes
guest ok = yes
注解:
[global]这段是全局配置,是必段写的。其中有如下的几行;
workgroup 就是Windows中显示的工作组;在这里我设置的是LINUXSIR (用大写);
netbios name 就是在Windows中显示出来的计算机名;
server string 就是Samba服务器说明,可以自己来定义;这个不是什么重要的;
security 这是验证和登录方式,这里我们用了share ;验证方式有好多种,这是其中一种;另外一种常用的是user的验证方式;如果用share呢,就是不用设置用户和密码了;
[linuxsir] 这个在Windows中显示出来是共享的目录;
path = 可以设置要共享的目录放在哪里;
writeable 是否可写,这里我设置为可写;
browseable 是否可以浏览,可以;可以浏览意味着,我们在工作组下能看到共享文件夹。如果您不想显示出来,那就设置为 browseable=no
guest ok 匿名用户以guest身份是登录;
第二步:建立相应目录并授权;
[root@localhost ~]# mkdir -p /opt/linuxsir
[root@localhost ~]# id nobody
uid=99(nobody) gid=99(nobody) groups=99(nobody)
[root@localhost ~]# chown -R nobody:nobody /opt/linuxsir
注释:关于授权nobody,我们先用id命令查看了nobody用户的信息,发现他的用户组也是nobody,我们要以这个为准。有些系统nobody用户组并非是nobody ;
[root@localhost ~]# smbd
[root@localhost ~]# nmbd
关于smbd的基础知识,参考http://wiki.linux-ren.org/index.php/Smbd
号外:
Linux使用的文件系统为Ext2,和传统的Windows系列的FAT不同
NetworkFile System, NFS 就是这样的档案系统之一!我只要在 Client 端将 Server所提供分享的目录挂载进来,那么在 Client 的机器上面就可以直接取用 Server上的档案数据,而且,该数据就像 Client 端上面的partition 一般!而除了可以让 Unix Like 的机器互相分享档案的NFS 服务器之外,在 微软 ( Microsoft ) 上面也有类似的档案系统,那就是 CommonInternet File System, CIFS 这个咚咚啦!CIFS 最简单的想法就是目前常见的『网络上的芳邻』。