Samba服务:在Linux/UNIX系统中实现了微软的SMB/CIFS网络协议,应用范围主要是WindowsLinux系统共存的网络,主要是提供共享文件和共享打印机的服务,使得跨平台的文件共享更容易。

 

实验要求:

1.安装装samba软件包,开启samba服务。

2.设置可匿名访问共享:将/var/share/public/目录共享为public,所有用户都可以访问,但只有只读权限。

3.设置需用户验证的共享:将/var/share/training/目录共享为peixun,允许root和技术部所有员工访问,但只有root用户可以写入,并要求root用户可以用adm账户访问,禁止其他人访问。

4.linux客户机访问共享,并使用mount命令把public共享目录挂载到/media/smbdir目录下,从/media/smbdir目录下使用共享文件。





1.安装samba软件包

Samba文件共享服务_samba、共享服务

可以先查看linux系统中samba相关软件的安装情况


Samba文件共享服务_samba、共享服务_02

挂载系统镜像光盘(centos6.5),安装samba服务器核心软件包。


Samba文件共享服务_samba、共享服务_03

Samba文件共享服务_samba、共享服务_04

开启smb服务和nmb服务

Samba服务器提供两种服务程序:smbd 负责提供服务器中的共享资源

 nmbd 负责提供基于NetBIOS协议的主机名称解析,以便为Windows网络中的主机进行 查询服务。


Samba文件共享服务_samba、共享服务_05

验证服务进程状态,查看相关端口是否处于监听状态。

Smdb服务程序负责监听TCP协议的139端口(SMB协议)、445端口(CIFS协议)

Nmbd服务程序负责监听UDP协议的137-138端口(NetBIOS协议)


注意:开启samba相关服务之前,需要现将网卡配置完成。

 

2.主配置文件/etc/samba/smb.cof各部分含义

Samba文件共享服务_samba、共享服务_06

全局配置:这部分配置项内容对整个Samba服务器都有效,主要的配置项如下

workgroup       设置服务器所在的工作组名称

server string   设置服务器的说明文字

security        设置服务器的安全级别即验证登陆方式,共有四种:

                    share(可匿名访问)

    user(需要本服务器验证用户名及密码)

    server(需要指定另一台服务器来验证用户名及密码)

    domain(由windows域控制器验证用户名及密码)

log file        设置samba服务器的日志文件,默认设置为“/var/log/samba/log.%m”,按每客户机建立一个日志文件,其中%m”变量表示客户端主机名或IP地址。

passwd backend  设置共享账户文件类型,默认使用tdbsamTDB数据库文件)。


Samba文件共享服务_samba、共享服务_07

宿主目录共享设置:设置linux用户的默认共享,对应用户的宿主目录。当用户访问服务器中与自己用户名同名的共享目录时,通过验证后将会自动映射到该用户的宿主文件夹中。


Samba文件共享服务_samba、共享服务_08

打印机共享设置:可以在这里配置共享打印机设备

comment      设置对应共享目录的注释、说明信息

path         设置对应共享目录在服务器中的文件夹路径

browseable   设置共享目录在“网上邻居”中是否可见,设置为no时相当于隐藏共享目录。

guest ok     public”配置项作用相同,设置是否所有人都可以访问共享目录。

writable     read only”配置项作用相反,设置该共享目录是否可写。


3.配置可匿名访问的共享

Samba文件共享服务_samba、共享服务_09

在修改配置文件smb.conf之前,先将其备份。


Samba文件共享服务_samba、共享服务_10

修改smb.conf配置文件


Samba文件共享服务_samba、共享服务_11

[global]全局配置下,将安全级别设置为share


Samba文件共享服务_samba、共享服务_12Samba文件共享服务_samba、共享服务_13

添加共享目录public

选项:public   是否所有人都可以访问此目录,等同于guest ok

 

Samba文件共享服务_samba、共享服务_14

重新载入smb.conf文件,更新服务。


Samba文件共享服务_samba、共享服务_15

设置目录/var/share/public/的访问权限,因为在配置文件中已经将共享目录设置为了只读,所以这里给权限为777


4.配置用户验证的共享

Samba文件共享服务_samba、共享服务_16

先创建jishubu组和fjc系统用户,并将fjc的基本组改为jishubu

(注意:共享用户必须对应系统中存在的用户)

Samba文件共享服务_samba、共享服务_17

Samba文件共享服务_samba、共享服务_18

命令:pdbedit  对共享用户进行管理

选项:-a 添加

      -u 指定用户名称

      -L 列出所有的samba共享用户

      -v 输出详细内容

      -x 删除指定的samba共享用户

(注意:共享需要授权一个组时,需要为组内每个系统用户都创建对应的samba共享用户)


Samba文件共享服务_samba、共享服务_19

Samba文件共享服务_samba、共享服务_20

修改配置文件/etc/samba/smbusers,给root设置一个别名adm


Samba文件共享服务_samba、共享服务_10

Samba文件共享服务_samba、共享服务_22

启用别名配置文件


Samba文件共享服务_samba、共享服务_23

使用用户验证访问samba共享,需要将安全级别提升为user

 

Samba文件共享服务_samba、共享服务_24

添加peixun的共享目录配置段

选项:valid users   能够使用该共享资源的用户和组

      write list    能够读取和写入该共享资源的用户和组

 

Samba文件共享服务_samba、共享服务_14

重新载入配置文件smb.conf


Samba文件共享服务_samba、共享服务_26

对共享目录/var/share/training/设置访问权限



补充:

Samba文件共享服务_samba、共享服务_27

hosts allow   指定仅允许访问共享的客户机地址段(白名单)

host deny    指定仅拒绝访问共享的客户机地址段(黑名单)


Samba文件共享服务_samba、共享服务_28

Samba文件共享服务_samba、共享服务_29

testparm程序可以对smb.conf配置文件的正确性进行检查

 

5.访问共享文件夹

Windows系统访问共享的方法比较简单,这里说一下linux访问samba共享的方法。


Samba文件共享服务_samba、共享服务_30

命令:smbclient  -L 查询目标主机的共享资源列表(在工作组环境,不需要用户验证,在提示输入密码时直接按Eenter键。)

 

Samba文件共享服务_samba、共享服务_31

登录并访问共享文件夹(允许匿名访问的不需要指定密码,直接回车。)

smb:\>环境中,使用?help命令查看各种交互命令的在线帮助


Samba文件共享服务_samba、共享服务_32

选项:-U  指定用户访问需要验证的共享文件,这里的用户adm便是root的别名。


Samba文件共享服务_samba、共享服务_33

将共享文件夹挂载到本地,即可通过挂载点目录直接使用共享文件夹的内容。

 

注意:当samba服务器的默认安全级别为user时,对于那些允许匿名访问的共享文件夹,在客户机中通过smbclient工具任然可以正常连接访问,但使用mount工具时将被拒绝挂载。


Samba常见的配置项:

 

comment: 对共享目录的备注
path:共享的路径。
allow hostsdeny hosts:允许或者拒绝的主机
writeable:目录缺省是否可写,也可以用readonly = no来设置可写
valid users:能够使用该共享资源的用户和组
invalid users:不能够使用该共享资源的用户和组
read list:只能读取该共享资源的用户和组
write list:能读取和写该共享资源的用户和组
admin list:能管理该共享资源(包括读写和权限赋予等)的用户和组
public:该共享资源是否能给游客帐号访问,等同于”guest ok”
hide dot files:是否隐藏以“.”号开头的文件
create mode:新建立的文件的属性,一般是0644
directory mode:新建立的目录的属性,一般是0755
sync always:对该共享资源进行写操作后是否进行同步操作
short preserve case:不管文件名大小写
preserve case:保持大小写
case sensitive:是否对大小写敏感,一般选no,不然可能引起错误
mangle case:指明混合大小写
default case:缺省的文件名是全部大写还是小写(lower/upper
force user:强制制定新建立文件的属主
wide links:是否允许共享链接文件
max connections = n:设定最大并发连接数
delete readonly:能否删除共享资源里面已经被定义为只读的文件