CentOS上搭建Samba服务器简单介绍 - 图1

    大家都知道Windows操作系统上可以设置共享目录,可以让局域网的其他用户通过网上邻居访问这个共享目录,那在Linux上怎么设置共享目录呢?
    Samba是在Linux系统上实现SMB协议的一个服务软件,SMB可以实现在局域网上共享文件和打印机,SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。客户机通过该SMB协议可以访问服务器上的共享文件系统、打印机及其他资源

    下面介绍在CentOS上搭建共享文件服务Samba

    一、首先yum方式安装samba服务
    [root@YuanFan-CentOS ~]# yum install samba samba-client
    CentOS上搭建Samba服务器简单介绍 - 图2
    二、备份smb.conf 文件,并将smb.conf.bak文件中注释行全部过滤后覆盖到smb.conf中
    [root@Storage ~]# mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
    [root@Storage ~]# cat /etc/samba/smb.conf.bak | grep -v “#” | grep -v “;” | grep -v “^$” > /etc/samba/smb.conf
    cat命令读入主配置文件,再在grep命令后面添加-v参数(反向选择),分别去掉所有以井号(#)和分号(;)开头的注释信息行,对于剩余的空白行可以使用^$参数来表示并进行反选过滤,最后把过滤后的可用参数信息通过重定向符覆盖写入到原始文件名称中。执行过滤后剩下的Samba服务程序的参数并不复杂,为了更方便查阅参数的功能
    CentOS上搭建Samba服务器简单介绍 - 图3
    三、下面先创建不需要密码的访问共享目录
    1、先创建共享目录的真实目录
    [root@Storage ~]# mkdir /datadisk
    [root@Storage ~]# chmod 777 /datadisk/
    2、下面开始vi编辑smb.conf文件
    [root@Storage ~]# vi /etc/samba/smb.conf
    [global]
    workgroup = WORKGROUP 工作组的名称为WORKGROUP
    server string = Samba Server Version %v
    log file = /var/log/samba/log.%m
    max log size = 500
    security = share #share:分享的数据不需要密码
    passdb backend = tdbsam

    cups options = raw
    [data_share]
    path = /datadisk/
    read only = No
    writable = yes
    guest ok = yes
    guest only = yes
    create mode = 0777
    directory mode = 0777
    CentOS上搭建Samba服务器简单介绍 - 图4
    security = share, user, domain:三选一,这三个设定值分别代表

    • share:分享的数据不需要密码,大家均可使用 (没有安全性);
    • user :使用 Samba服务器本身的密码数据库,密码数据库与底下的 passdb backend 有关;
    • domain:使用外部服务器的密码

    3、接下来设置samba的两个服务smb和nmb服务开机启动,并手动启动这两个服务
    [root@Storage ~]# chkconfig smb on
    [root@Storage ~]# chkconfig nmb on
    [root@Storage ~]# service smb start
    Starting SMB services: [ OK ]
    [root@Storage ~]# service nmb start
    Starting NMB services: [ OK ]
    [root@Storage ~]#
    CentOS上搭建Samba服务器简单介绍 - 图5
    需要注意的两个地方:
    1)如果CentOS服务器有开启SELINUX的话,建议关闭掉
    vi /etc/selinux/config
    将SELINUX=enforcing 改成SELINUX=disabled,然后reboot重启生效
    CentOS上搭建Samba服务器简单介绍 - 图6
    重启后用getenforce命令确认SELINUX状态为Disabled
    CentOS上搭建Samba服务器简单介绍 - 图7
    2)防火墙配置,若有开启防火墙,需要加入一下规则
    [root@Storage ~]# iptables -I INPUT 5 -p tcp -m state —state NEW -m multiport —dports 139,445 -j ACCEPT
    [root@Storage ~]# iptables -I INPUT 5 -p udp -m state —state NEW -m udp —dport 137 -j ACCEPT
    CentOS上搭建Samba服务器简单介绍 - 图8
    4、Windows主机网上邻居或资源管理器访问\192.168.31.111验证
    CentOS上搭建Samba服务器简单介绍 - 图9
    验证可以正常访问共享目录,读写权限都OK

    四、下面介绍需要密码访问共享目录的部署方式
    1、创建用户组及目录
    [root@Storage ~]# groupadd security #创建一个security用户组
    [root@Storage ~]# mkdir /datadisk_security/ #创建data_security目录
    [root@Storage ~]# chgrp security /datadisk_security/
    [root@Storage ~]# chmod 770 /datadisk_security/
    CentOS上搭建Samba服务器简单介绍 - 图10
    2、接下来添加系统用户secadmin(测试账号) 用户组权限改为security用户组

    [root@Storage ~]# useradd secadmin
    [root@Storage ~]# usermod -G security secadmin
    [root@Storage ~]#
    CentOS上搭建Samba服务器简单介绍 - 图11
    3、secadmin系统账号测试加入到smb用户里,并设置smb密码

    [root@Storage ~]# smbpasswd -a secadmin
    New SMB password:
    Retype new SMB password:
    Added user secadmin.
    [root@Storage ~]#
    CentOS上搭建Samba服务器简单介绍 - 图12
    4、编辑smb.conf
    [root@Storage ~]# vi /etc/samba/smb.conf
    [global]
    workgroup = WORKGROUP
    server string = Samba Server Version %v
    log file = /var/log/samba/log.%m
    max log size = 500
    security = user
    passdb backend = tdbsam
    cups options = raw
    [data_security]
    path = /datadisk_security/
    read only = No
    writable = yes
    create mode = 0770
    directory mode = 0770
    guest ok = no
    valid user = @security
    CentOS上搭建Samba服务器简单介绍 - 图13
    5、手动重启smb和nmb服务
    CentOS上搭建Samba服务器简单介绍 - 图14
    6、Windows主机网上邻居或资源管理器访问\192.168.31.111验证
    提示输入账号密码
    CentOS上搭建Samba服务器简单介绍 - 图15
    CentOS上搭建Samba服务器简单介绍 - 图16
    验证OK,可以正常访问
    五、另外Linux上挂载Linux Samba共享目录的命令如下
    mount -t cifs //192.168.31.111/data_security /mnt/cifs -o username=secadmin,password=admin123
    CentOS上搭建Samba服务器简单介绍 - 图17
    Samba共享服务的简单部署就介绍到这里