Samba文件共享服务

一、Samba服务基础

1. 服务程序包

  • 服务端软件 samba
  • 客户端软件 samba-client
  • 提供服务端和客户端公共组 samba-common
  • 提供Web接口图形管理程序软件 samba-swat

2. 服务程序组件

  • Samba服务器提供smbd、nmbd两个服务;
  • smbd负责为客户机提供服务器中共享资源(目录和文件等)的访问;
  • nmbd负责提供基于NetBIOS协议的主机名称解析,以便为Windows网络中的主机进行查询服务。
  • smbd监听TCP协议139端口(SMB协议)、445端口(CIFS协议),nmbd监听UDP协议137-138端口(NetBIOS协议)

3. 主配置文件smb.conf

[root@localhost ~]# grep -v "#" /etc/samba/smb.conf |grep -v ";" | awk NF
# 全局设置
[global]
    # 设置服务器器所在工作组名称,如:Windows主机默认工作组名“WORKGROUP”
    workgroup = MYGROUP

    # 设置服务器的说明文字,用于描述Samba服务器
    server string = Samba Server Version %v

    # 设置Samba服务器的日志文件
    log file = /var/log/samba/log.%m

    max log size = 50

    # 设置服务器的安全级别分别是:share(匿名访问)、user(本服务器验证用户名及密码)、server(指定另一台服务器来验证用户名及密码)、domain(Windows域控制器验证用户名及密码)
    security = user

    # 设置共享帐户文件类型,默认tdbsam(TDB数据库文件)。若网络内拥有LDAP目录认证,可改为ldapsam数据库文件;若兼容旧版的Samba密码文件,也可将类型设为smbpasswd
    passdb backend = tdbsam

    load printers = yes
    cups options = raw

# 宿主目录共享设置:设置Linux用户的默认共享,对应用户的宿主目录。
[homes]
    # 设置对应共享目录的注释、说明信息
    comment = Home Directories
    browseable = no
    writable = yes

# 打印机共享设置:需共享打印机设备,可以在这部分进行配置。
[printers]
    comment = All Printers

    # 设置对应共享目录在服务器中的文件夹路径
    path = /var/spool/samba

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

    # 设置是否所有人都可以访问共享目录,与“public”配置项的作用相同
    guest ok = no

    # 设置该共享目录是否可写,与“read only”配置项作用相反
    writable = no

    # 是否启动打印服务
    printable = yes

配置文件检查工具——testparm

二、构建文件共享服务器实例

1. 可匿名访问的共享

vim /etc/samba/smb.conf
[global]
    workgroup = WORKGROUP
    security = share
[rhel7]
        comment = RHEL 6.10 DVD directory.
        path = /media
        public = yes
        read only = yes

2. 用户验证共享

# 建立Samba用户数据库
useradd test        # 先添加系统用户test
pdbedit -a -u test  # 在添加共享用户test,-a添加,-u指定用户名(可省略),等价于smbpasswd -a test
pdbedit -L          # 列出所有Samba用户
pdbedit -vL test    # 只列出test用户详细信息
pdbedit -x -u test  # 删除共享用户test,-x删除

# 用户访问授权
useradd test1
useradd test2
pdbedit -a -u test1
pdbedit -a -u test2
mkdir /opt/myapp
vim /etc/samba/smb.conf
[global]
    security = user
[myapp]
        comment = MyApp
        path = /opt/myapp
        public = no
        read only = yes
        valid users = test1, test2
        write list = test2

# 目录访问授权
chmod 777 /opt/myapp
vim /etc/samba/smb.conf
[myapp]
        directory mask = 0755
        create mask = 0644

3. 用户别名及访问地址限制

# 用户别名设置
vim /etc/samba/smbusers
test1 = bieming1 alias1
test2 = bieming2 alias2

vim /etc/samba/smb.conf
[global]
        username map = /etc/samba/smbusers

# 访问地址限制
# hosts allow仅允许,hosts deny仅拒绝
# 10.10.10.0/24  172.16.0.0/16仅允许这2个网段访问Samba服务器,如下配置
vim /etc/samba/smb.conf
[global]
        hosts allow = 10.10.10. 172.16.

service smb reload

4. 访问共享文件夹

# 登录访问Samba
smbclient -U test1 //10.10.10.10/myapp

# mount挂载共享文件夹
mount -o username=test1 //10.10.10.10/myapp /mnt

三、Web图形化管理工具samba-swat

# 配置文件修改成如下:
vim /etc/xinetd.d/swat
service swat
{
        port            = 901
        socket_type     = stream
        wait            = no
        only_from       = 0.0.0.0
        user            = root
        server          = /usr/sbin/swat
        log_on_failure  += USERID
        disable         = no
}
vim /etc/services
swat            901/tcp         smpnameres      # Samba Web Administration Tool

service xinetd restart         # 重启xinetd
chkconfig --list |grep swat    # 使用chkconfig查看swat状态

Web图形化管理工具,参考博文:http://blog.51cto.com/yuanbin/117105

你可能感兴趣的:(Samba文件共享服务)