Samba服务器设置

Samba服务器设置

Samba,是用来让Linux系列的操作系统与Windows操作系统的SMB/CIFS(Server Message Block/Common Internet File System)网络协议做连结的*软件,最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享(Linux与Linux之间的资源共享更多用NFS实现)。

组成Samba运行的有两个服务,一个是SMB,另一个是NetBIOS。SMB是Samba的核心启动服务,主要负责建立Samba服务器与Samba客户机之间的对话,验证用户身份并提供对文件和打印系统的访问,监听139 TCP端口(增强版SMB协议CIFS直接监听445端口,CIFS不需要NetBIOS协议);而NetBIOS服务是负责解析,提供浏览网络上的共享资源列表,监听UDP端口137和138。

 

Samba相关配置:

  主配置文件:/etc/samba/smb.conf

  主程序:nmbd(NetBIOS Name Server Daemon)、smbd(SMB/CIFS Daemon)

  Unit文件:smb.service和nmb.service

 

其中/etc/samba/smb.conf文件常见参数:

  全局配置:

[global]

    workgroup=MYGROUP  #工作组名

    server string=Samba Server Version %v  #服务器信息介绍

    netbios name=MYSERVER  #用netbios名来指定服务

    interfaces=[interface1 interface2...|address1 address2...]  #用于让samba服务监听多个网络接口或IP

    hosts allow=[address1 address2...]  #指定允许访问的主机IP

    log file=/var/log/samba/log.%m  #指定日志存放路径,%m为来访的主机名

    max log size=50  #定义日志文件最大容量为50K

    security=user  #设置samba服务的安全认证方式为user

    passdb backend=tdbsam  #定义用户后台的类型为tdbsam,其他类型还有smbpasswd、ldapsam

    load prints=yes  #设置是否共享打印机

    cups options=raw  #打印机选项

  其它配置:

[homes]:为每个samba用户定义其是否能够通过samba服务访问自己的家目录

[printers]:定义打印服务

[自定义共享目录]:定义共享的文件系统

  常用指令:

comment=STRING:注释

path=/PATH/TO/FILENAME:当前共享所映射的文件系统路径

browseable=YES:是否可浏览,指是否可被所有用户查看

pulibc=YES:是否允许匿名访问

browseable=No:是否公开目录

writable=YES:是否可写

read only=no|yes:是否为只读

write list=/PATH/TO/user_list|USERNAME:拥有写权限的用户列表

directory mask=MASK:新建目录的权限值

force directory mode=MASK:配合directory mask使用,使得目录权限值生效

create mask=MASK:新建文件的权限值

force create mode=MASK:配合create mask使用,使得文件权限值生效

  更多参数可通过命令 man smb.conf 查看。

 

项目实训

 

一、centos7下samba服务器------匿名共享

1.安装Samba软件包

方法一:

 

[root@localhost  ~]# mount   /dev/cdrom   /mnt
[root@localhost  ~]# cd   /mnt/Packages
[root@localhost Packages]# ls   samba*
[root@localhost Packages]# rpm  -ivh   samba-4.8.3-4.el7.x86_64.rpm   --nodeps

  

 

方法二:

[root@localhost  ~]# yum  -y  install  samba
  1. samba的配置文件是smb.conf,存放在/etc/samba下,配置前建议先做一个备份
[root@localhost  ~]# cd  /etc/samba

[root@localhost  samba]# cp  -a  smb.conf   smb.conf.bak
  1. 配置samba的全局参数,允许匿名访问,需要添加map to guest = bad user一列
[root@localhost  samba]# vim  /etc/samba/smb.conf

 

4.配置共享组,共享组主要用来定义需要在网络上共享的文件资源。

 

参数解析

[share]                          

    comment = 共享描述 

    path = /share               //共享的文件路径      

    writable  = yes            //是否可写       

    browseable = yes          //是否可被浏览        

public = yes           //是否允许匿名访问

 

  1. 创建共享目录,上述配置的路径在/目录先,所以需要在/目录下创建,配置需要一致
[root@localhost  samba]# mkdir  /share

[root@localhost  samba]# chmod  757  /share

[root@localhost  samba]# cd   /share

[root@localhost  share]# touch  aa.txt

[root@localhost  share]# ls

aa.txt

[root@localhost  share]# pwd

 

  1. 启动服务,并用客户就进行测试,运行\\192.168.137.150
[root@localhost  share]# systemctl  start  smb.service

[root@localhost  share]# systemctl  start  nmb.service

在客户端windows地址栏中输入\\192.168.137.150进行测试访问测试

 

 

项目二:自定义共享目录(用账号密码访问)

RPM –ivh samba-common-tools-4.8.3-4.el7.x86_64.rpm

1.配置文件/etc/samba/smb.conf的修改

注释掉16行的匿名访问功能字段map to guest = Bad User

 

[root@samba ~]# vim    /etc/samba/smb.conf
[shared_dir]

        comment=shared dir through samba

        path=/samba_dir

        writable=yes

[root@samba ~]# mkdir   /samba_dir       //创建共享文件

[root@samba ~]# testparm    //校验/etc/samba/smb.conf文件的配置是否正确

 

2.samba服务默认的验证模式为user,因此需要创建samba用户数据库:

samba帐号必须存在于Linux系统中(/etc/passwd),而其密码却需要单独维护。创建samba用户数据库有专门的命令:pdbedit 和 smbpasswd。

[root@samba ~]# useradd   samba_user1

[root@samba ~]# smbpasswd   -a   samba_user1

 

  1. 修改/samba_dir目录的属主和属组
[root@samba ~]# groupadd samba

[root@samba ~]# usermod -G samba samba_user1

[root@samba ~]# ll  -d  /samba_dir

[root@samba ~]# chown  :samba   /samba_dir

[root@samba ~]# chmod   g+w   /samba_dir

[root@samba ~]# ll   -d   /samba_dir

 

  1. 启动服务,并用客户就进行测试,运行\\192.168.137.150
[root@localhost  share]# systemctl  restart  smb.service

[root@localhost  share]# systemctl  restart  nmb.service

在客户端windows地址栏中输入\\192.168.137.150进行测试访问测试

 

上一篇:Linux中的网络文件系统


下一篇:centos7创建samba共享文件夹