Centos 7 Samba服务器搭建与用户配置

注:本文配置关闭了防火墙和selinux

一、Samba简介

Samba是通过CIFS协议实现windows和linux之间的文件共享的软件,本文要实现:

  1. 所有人都能访问公共目录;

  2. 每个人能访问自己的家目录;

  3. 其他人不能访问自己的目录。

二、samba相关包

1、samba程序包

# yum install samba
==============================================================================================
 Package                     Arch            Version                   Repository        Size
==============================================================================================
Installing:
 samba                       x86_64          4.4.4-14.el7_3            updates          610 k
Installing for dependencies:
 libldb                      x86_64          1.1.26-1.el7              base             125 k
 libtalloc                   x86_64          2.1.6-1.el7               base              34 k
 libtdb                      x86_64          1.3.8-1.el7_2             base              45 k
 libtevent                   x86_64          0.9.28-1.el7              base              34 k
 libwbclient                 x86_64          4.4.4-14.el7_3            updates          100 k
 pytalloc                    x86_64          2.1.6-1.el7               base              15 k
 samba-client-libs           x86_64          4.4.4-14.el7_3            updates          4.6 M
 samba-common                noarch          4.4.4-14.el7_3            updates          191 k
 samba-common-libs           x86_64          4.4.4-14.el7_3            updates          161 k
 samba-common-tools          x86_64          4.4.4-14.el7_3            updates          451 k
 samba-libs                  x86_64          4.4.4-14.el7_3            updates          260 k

==============================================================================================

2、samba相关文件与程序

#samba服务的主配置文件
/etc/samba/smb.conf

#NetBIOS Name与IP的对应关系,做用类似于/etc/hosts,一般无需配置
/etc/samba/lmhosts

#smbd, nmbd服务自定义参数配置文件
/etc/sysconfig/samba

# samba用户和密码数据库文件
/var/lib/samba/private/{passdb.tdb,secrets.tdb}

#Samba 3.0以后,默认使用tdb库(Trivial DataBase),这两个命令用于查看和操作tdb库,不过查看出的结果有点类似于16进制的数据,一般不使用,需安装 tdb-tools 包
/usr/bin/{tdbdump,tdbtool}

#smbpasswd命令用于创建samba用户和修改密码,类型于passwd命令的功能。Samba 3.0后使用pdb库,pdbedit命令为新版本中的samba用户信息管理命令
/usr/bin/{smbpasswd,pdbedit}

三、samba服务配置

/etc/samba/smb.conf

[global]
    #工作组
    workgroup = WORKGROUP 
    #欢迎信息
    server string = Samba Server Version %v 
    #netbios
    netbios name = ShareSERVER 
    #日志文件位置 
    log file = /var/log/samba/log.%m
    # maximum size of 50KB per log file, then rotate:
    max log size = 50
    #linux下使用的编码
    unix charset = utf8
    #验证方式,默认是user
    security = user
    #开启匿名访问
    map to guest = Bad User
    #指定用户名密码存储的数据格式
    passdb backend = tdbsam
    #关闭打印机
    disable spoolss = yes
    load printers = no
    cups options = raw
[public]
    #提示信息
    comment = public share
    #共享目录
    path = /home/ftp/public
    #开启公共访问
        public = yes
    #开启写入权限
    writable = yes
    #让所有人目录可见
    browseable = yes
[xingzheng] 
    comment = xingzheng
    path = /home/ftp/xingzheng
    #writable = yes
    browseable = yes
    #允许访问的使用者
    valid users = xingzheng
    #允许写入的使用者
    write list = xingzheng
    printable = no
    #默认权限设置
    create mask = 0644
    directory mask = 0755
[caiwu]
    comment = caiwu
    path = /home/ftp/caiwu
    #writable = yes
    browseable = yes
    #允许访问的使用者
    valid users = caiwu
    #允许写入的使用者
    write list = caiwu
    printable = no
    #默认权限设置
    create mask = 0644
    directory mask = 0755

四、添加用户和组

###创建用户xingzheng和家目录,同时默认创建了用户组xingzheng
# useradd -d /home/ftp/xingzheng  -m -s /sbin/nologin  xingzheng
# useradd -d /home/ftp/caiwu  -m -s /sbin/nologin caiwu
###创建smb用户,smb用户必须是系统已经存在的用户,执行命令后输入两次密码即创建成功
# pdbedit  -a -u xingzheng
# pdbedit  -a -u caiwu
###查看创建的用户
# pdbedit -L
xingzheng:1001:
caiwu:1002:

五、修改目录权限

使用useradd创建用户xingzheng和caiwu时,其家目录以配好相应的权限了

##公共目录
# chown nobody:nobody public
# ls -l ftp/
drwx------ 2 caiwu     caiwu     62 Aug  1 19:26 caiwu
drwxr-xr-x 2 nobody    nobody     6 Aug  1 18:40 public
drwx------ 2 xingzheng xingzheng 62 Aug  2 10:18 xingzheng

六、测试

用Windows资源管理器打开共享地址,可以看到三个共享目录,打开caiwu或xingzheng目录需要输入账户密码,无需账户密码就可以访问public

未分类

以caiwu账户可以登录使用caiwu目录,登录xingzheng目录则被拒绝

未分类

samba的匿名共享和用户认证共享配置

一、匿名共享

1、安装

yum -y  install samba*  ##安装samba软件

2、修改配置文件

vi  /etc/samba/smb.conf 
[global]

        workgroup = MYGROUP

        server string = Samba Server Version %v

        log file = /var/log/samba/log.%m

        max log size = 50

        security = share

        passdb backend = tdbsam

        load printers = yes

        cups options = raw

[public]

        comment = Public Stuff

        path = /opt/share   #共享目录

        public = yes

        writable = yes

        printable = no

:wq


mkdir  /opt/share

touch /opt/share/a.file

chmod 777 /opt/share

testparm   ##测试配置是否有误

/etc/init.d/smb  start

chkconfig smb on

netstat -utpln |grep mb  ##TCP:139,445/UDP:137,138查看端口

3、测试:

windows:

\10.10.10.95public

linux:

mount //10.10.10.95/public  /mnt

用户认证的共享:注意匿名和认证选一个

二、用户认证共享

1、创建用户

useradd user01

useradd user02

pdbedit -a user01  ##将系统用户添加为smb用户

pdbedit -a user02

pdbedit -L  ##查看smb用户

2、修改配置文件

[root@smb ~]# vi /etc/samba/smb.conf
[global]


        workgroup = MYGROUP

        server string = Samba Server Version %v

        log file = /var/log/samba/log.%m

        max log size = 50

        security = user    ##用户认证的共享

        passdb backend = tdbsam

        load printers = yes

        cups options = raw

[public]

        comment = Public Stuff

        path = /opt/share

        public = no   ##共享非公开

        writable = no   ##默认不可以写

        valid users = user01, user02  ##允许访问的用户

        write list = user01  ##有写入权限的用户

:wq

testparm

/etc/init.d/smb  restart

netstat -utpln |grep mb

3、测试

linux:客户机

mount  -o  username=u01  //10.10.10.95/public  /mnt

cd /mnt

touch b.file

ls

windows:

\10.10.10.95public

Ubuntu系统配置samba实现文件夹共享

一. samba的安装:

sudo apt-get insall samba
sudo apt-get install smbfs

二. 创建共享目录:

mkdir /home/phinecos/share
sodu chmod 777 /home/phinecos/share

三. 创建Samba配置文件:

1. 保存现有的配置文件

sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak

2. 修改现配置文件

sudo gedit /etc/samba/smb.conf

在smb.conf最后添加

[share]
path = /home/phinecos/share
available = yes
browsealbe = yes
public = yes
writable = yes

四. 创建samba帐户

sudo touch /etc/samba/smbpasswd
sudo smbpasswd -a phinecos

然后会要求你输入samba帐户的密码

[如果没有第四步,当你登录时会提示 session setup failed: NT_STATUS_LOGON_FAILURE]

五. 重启samba服务器

sudo /etc/init.d/samba restart

六. 测试

smbclient -L //localhost/share

七,使用

可以到windows下输入ip使用了,在文件夹处输入 “\” + “Ubuntu机器的ip或主机名” + “\” + “share”