centos之samba共享服务

内容大纲:

samba简介

centos上部署samba服务

samba服务的配置详解

samba服务的共享资源部署

samba服务的共享资源权限设置

samba服务共享帐号映射

一、介绍
Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。

SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。

SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统、打印机及其他资源。通过设置“NetBIOS over TCP/IP”使得Samba不但能与局域网络主机分享资源,还能与全世界的电脑分享资源。

二、部署samba服务器

1、环境
平台:VMware workstation 14
系统:centos 7.4
远程终端:xshell

2、系统环境
(1)、关闭防火墙
systemctl stop firewalld
(2)、关闭selinux
setenforce 0 #临时关闭

3、配置本地yum源
cd /etc/yum.repos.d
vi local.repo
[local]
name=local
baseurl=file:///mnt
enabled=1
gpgcheck=0

4、安装samba服务
yum install -y samba

如果报错:
mount /dev/cdrom /mnt

5、查看samba的配置文件
[[email protected] ~]# cd /etc/samba/
[[email protected] samba]# ls
lmhosts smb.conf smb.conf.example


说明:

smb.conf——是samba的配置文件

smb.conf.example——是samba的配置文件模版

6、修改samba配置文件
vi /etc/samba/smb.conf
#See smb.conf.example for a more detailed config file or
#read the smb.conf manpage.
#Run ‘testparm‘ to verify the config is correct after
#you modified it.

[global] #全局设置
workgroup = SAMBA #samba服务的工作组
security = user #samba的安全级别,四种:user、share、server、domain

    passdb backend = tdbsam   #定义samba用户后台的类型,3种:smbpasswd、tdbsam、ldapsam

    printing = cups     #打印机所使用的类型
    printcap name = cups  #打印机名称
    load printers = yes   #是否在开启 samba server 时即共享打印机。
    cups options = raw    #打印机的选项

[homes] #使用者本身的"家"目录,当使用者以samba使用者身份登入samba server 后,samba server 底下会看到自己的家目录,目录名称是使用者自己的帐号。
comment = Home Directories #描述信息
valid users = %S, %D%w%S #设定只有此名单内的用户才能访问共享资源(拒绝优先)(用户名/@组名)
browseable = No #是yes/否no在浏览资源中显示共享目录,若为否则必须指定共享路径才能存取
read only = No #是否只读
inherit acls = Yes #是否继承acl规则

[printers] #设置了samba服务器中打印共享资源的属性
comment = All Printers
path = /var/tmp #系统路径
printable = Yes #打印功能是否开启
create mask = 0600 #创建文件的默认的权限
browseable = No

[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = root
create mask = 0664
directory mask = 0775

三、配置共享资源

1、创建要共享的目录

mkdir /opt/aa

2、修改配置文件

vi /etc/samba/smb.conf

#See smb.conf.example for a more detailed config file or
#read the smb.conf manpage.
#Run ‘testparm‘ to verify the config is correct after
#you modified it.

[global]
workgroup = SAMBA
security = user

    passdb backend = tdbsam

    printing = cups
    printcap name = cups
    load printers = yes
    cups options = raw

[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No

[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = root
create mask = 0664
directory mask = 0775

[database] #定义共享名称
comment = this is test file #描述
path = /opt/aa #共享目录的绝对路径
public = yes #是否所有人可见

[点击并拖拽以移动]

2、启动samba服务,并设为开机自启动

systemctl start smb

systemctl enable smb

3、创建用于访问共享资源的账户信息。

在centos7版本中,samba服务程序默认使用的是用户口令认证模式,没有匿名模式。

这种认证模式可以去报仅让密码且受信任的用户访问共享资源,验证过程简单。

不过,只有建立账户信息数据库之后,才能使用用户口令认证模式。

此外,samba服务程序的数据库要求账户必须在当前系统中已经存在,否则日后创建文件时将导致文件的权限属性故障。

pdbedit 命令用于管理samba服务程序的账户信息数据库。

格式:

pdbedit [选项] 账户

pdbedit [选项] 账户

选项:

-a 用户名 :建立samba账户

-x 用户名 :删除samba帐户

-L :列出账户列表

-Lv :列出账户详细信息的列表

第一次把账户信息写入到数据库时需要使用“-a”参数,之后在修改密码、删除账户等操作都不需要了。

(1)创建系统用户

useradd jack

(2)将系统用户添加为samba用户

pdbedit -a jack

4、测试

使用windows系统去链接共享资源

微软按键+r

然后输入\192.168.80.100\database


出现如上图情况,说明samba服务共享资源成功

net use /d * //清除微软系统的共享访问缓存,让用户可以切换其它账号

四、配置共享资源的权限

1、修改samba配置文件

vi /etc/samba/smb.conf
#See smb.conf.example for a more detailed config file or
#read the smb.conf manpage.
#Run ‘testparm‘ to verify the config is correct after
#you modified it.

[global]
workgroup = SAMBA
security = user

    passdb backend = tdbsam

    printing = cups
    printcap name = cups
    load printers = yes
    cups options = raw

[homes]
comment = Home Directories
valid users = %S, %D%w%S
browseable = No
read only = No
inherit acls = Yes

[printers]
comment = All Printers
path = /var/tmp
printable = Yes
create mask = 0600
browseable = No

[print$]
comment = Printer Drivers
path = /var/lib/samba/drivers
write list = root
create mask = 0664
directory mask = 0775

[database]
comment = this is test file
path = /opt/aa
public = yes
read only = yes #是否只读
writable = yes #是否不以只读方式共享当与read only发生冲突时,无视read only
valid users = jack,tom #设定只有此名单内的用户才能访问共享资源,可以通过 @test 加组名
write list = jack 若设定为只读时,则只有此设定的名单内的成员才可作写入动作(用户名/@组名)
directory mask = 0700 #建立目录时所给的权限
create mask = 0640 #建立文件时所给的权限
hosts deny = 192.168.80.6 #设定只有此网段/IP的用户不能访问共享资源
hosts allow = 192.168.80.0 173.11.0.0 #设定只有此网段/IP的用户才能访问共享资源

注:

权限比较:

write list = ... > read only = yes > writable = yes

注意一下系统目录本身的权限对用户是否有读写执行

2、重启服务

systemctl restart smb

3、测试

当使用jack用户创建文件夹时,报以下错误

其原因是因为/opt/aa没有写权限

更改一下权限:

chmod 777 /opt/aa

再次创建文件夹

此时,新建文件夹成功,说明系统目录的权限大于samba配置文件中设置的权限。

五、配置共享帐号映射

当需要大量的samba用户的时候,那么就需要大量的系统用户,这样就会造成用户帐号过度浪费。

为了解决这样的问题,就有了共享帐号映射。

用一个系统账号作为一个公共帐号,然后映射一些虚拟账号,这样的话,就可以多个帐号使用一个系统帐号。

1、创建帐号映射文件

vi /etc/samba/smbusers

其内容如下:

hunter = sunboy player

2、创建hunter系统用户,并将系统用户加入为samba用户

useradd hunter

pdbedit -a hunter

3、修改samba配置文件

vi /etc/samba/smb.conf

#See smb.conf.example for a more detailed config file or
#read the smb.conf manpage.
#Run ‘testparm‘ to verify the config is correct after
#you modified it.

[global]
workgroup = SAMBA
security = user

    passdb backend = tdbsam

    printing = cups
    printcap name = cups
    load printers = yes
    cups options = raw
    username map = /etc/samba/smbusers   #添加此行内容

    以下内容同上。

4、重启服务

systemctl restart smb

5、测试


从上图可以看出,当使用“player”帐号登录samba服务,实际使用的是hunter用户。

原文地址:https://blog.51cto.com/13496696/2373322

时间: 2024-10-27 03:46:25

centos之samba共享服务的相关文章

搭建Samba共享服务及访问控制

Samba共享服务 Linux如何访问Windows的共享? Windows能实现访问Linux的共享吗? 关于Samba --SMB/CIFS协议 -- Server Message Block ,服务消息块 -- Common Internet File System , 通用网际文件系统 Samba服务基础 主要软件包 [[email protected] Server]# rpm -qa | grep samba samba-common-3.0.33-3.39.el5_8      

一、掌握Samba服务的配置原理;二、在linux下配置samba共享服务

一.掌握Samba服务的配置原理二.在linux下配置samba共享服务(匿名共享.身份验证.账户映射.访问控制)Samba介绍:Samba是运行在Linux与Unix之上的免费共享服务的软件,是典型服务器/客户端模式,它有两个进程,一个是smbd,主要是用来管理共享文件的进程,另一个是nmbd,用来实现主机名到IP地址的转换(相当于Windows下的NetBIOS的功能),smbd运行在TCP的139.445端口,nmbd则运行在UDP的137.138端口(运行samba服务后可以用如:net

Centos下samba共享打印机

先说需求,公司有一台型号为HP LaserJet m1120 mfp的打印机,由于不是网络打印机使用起来十分不便,公司老大要求将这台打印机连在公司的内网linux服务器上(CentOS),然后配置samba共享打印机.下面开工,主要分三大步骤,如符合你的需求,请继续阅读. 第一步,要保证你的打印机在linux服务器上可以正常打印.1.公司的惠普打印机连接埠为USB,将打印机插在服务器上,可以看到/dev/usb/lp0就是我的打印机2.到http://www.linuxprinting.org/

samba共享服务的实现

实现SMB共享 1.在samba服务器上安装samba包 yum install samba  -y 2.创建samba用户和组 [[email protected] ~]# groupadd  -r  amdin [[email protected] ~]# useradd –s  /sbin/nologin  -G admin  wang [[email protected] ~]# smbpasswd  -a wang    #设置密码 [[email protected] ~]# use

CentOS6.6搭建Samba共享服务

Samba Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成.SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务.SMB协议是客户机/服务器型协议,客户机通过该协议可以访问服务器上的共享文件系统.打印机及其他资源.通过设置"NetBIOS over TCP/IP"使得Samba不但能与局域网络主机分享资源,还能与全世界的

Samba共享服务:匿名共享、身份验证、账户映射、访问控制

实验项目:Samba服务匿名共享:Samba服务身份验证共享:Samba服务账户映射.Samba服务访问控制 实验环境:VMware虚拟机Linux系统(我这里是Redhat6.5)Win7(这里仅用于测试实验效果) 实验目的:1.在win7中匿名共享Linux中的文件(无需身份验证.无需密码)2.在win7中共享Linux中文件,但是需要身份验证和密码验证3.给账户配置别名,用别名登陆共享,提高安全性4.禁止一个网段或多个网段访问 实验经过:无论是在Windows.Linux.Unix,选用S

vsftpd文件传输 、 Samba共享服务

Vsftpd 1.什么是FTP? FileTransfer Protocol 基于C/S结构的文件传输协议 2.使用什么协议?什么端口? TCP 21    建立命令链路 TCP 20    在主动传输模式下服务器使用20端口向客户端建立数据链路 3.FTP工作原理 --------- Client               Server-------------- 1031                21 1032                 20 ①客户端向服务器发出连接请求,同时

centos7编译安装samba共享服务

1.系统和软件版本 [[email protected] ~]# cat /etc/redhat-release  CentOS Linux release 7.2.1511 (Core) [[email protected] ~]# ls samba-4.5.2  samba-4.5.2.tar.gz 2.安装gcc编译器及samba依赖包 [[email protected] ~]# yum -y install gcc perl python-devel gnutls-devel liba

samba共享服务

方法一 1.安装samba:可以先检查下是否已经安装:rpm -qa | grep samba,没有的话自己安装下,这里介绍下基于RPM包的一种在线安装模式yumyum是一种快速安装模式,它会自动解决软件安装时的依赖问题并自动去特定的服务器下载相应的软件进行安装,命令十分简单:yum install samba,快捷方便的背后离不开程序员的辛苦啊!2.创建共享文件夹,这里就是mkdir -m 777 /home/def/share3.修改/etc/samba/smb.conf,这里面的参数就比较